从Python中读取JSON文件

时间:2015-05-28 11:16:27

标签: python json

变量数据具有以下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'])

但我收到错误

2 个答案:

答案 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')的字典索引。正如您在代码的最后一行中所看到的那样。