变量数据具有以下JSON
{
"destination_addresses" : [ "Stade Leopold Sedar Senghor, Route de Yoff, Dakar, Senegal" ],
"origin_addresses" : [ "Unnamed Road, Dakar, Senegal" ],
"rows" : [
{
"elements" : [
{
"distance" : {
"text" : "13.0 km",
"value" : 13007
},
"duration" : {
"text" : "23 mins",
"value" : 1383
},
"status" : "OK"
}
]
}
],
"status" : "OK"
}
然后我运行以下代码:
parsed = json.loads(data)
我想存储距离"文字"和"价值"和持续时间"文字"和"价值"和"状态"到python中的变量。我尝试了以下代码,但它不起作用:
dist = int(parsed['rows']['elements']['distance']['value'])
但我收到错误
答案 0 :(得分:3)
键行和元素是列表,因此您需要指定索引:
dist = int(parsed['rows'][0]['elements'][0]['distance']['value'])
答案 1 :(得分:0)
这里有工作代码。 我刚改变了一点,它工作正常。 访问字典有点令人困惑。我会尽力解释。 json.dumps将str序列化为json obj。这里有更多信息。 json.dumps
data ={
"destination_addresses" : [ "Stade Leopold Sedar Senghor, Route de Yoff, Dakar, Senegal" ],
"origin_addresses" : [ "Unnamed Road, Dakar, Senegal" ],
"rows" : [
{
"elements" : [
{
"distance" : {
"text" : "13.0 km",
"value" : 13007
},
"duration" : {
"text" : "23 mins",
"value" : 1383
},
"status" : "OK"
}
]
}
],
"status" : "OK"
}
data_string = json.dumps(data)
parsed = json.loads(data_string)
print parsed['rows'][0]['elements'][0]['distance']['text']
首先有一个字典列表,你必须引用你想要访问的索引(一个整数),然后引用名称('string')的字典索引。正如您在代码的最后一行中所看到的那样。