2015-09-27 92 views
1
一个以.json文件

有很多的上载以.json文件的信息,但我想不出是什么问题:解析与Python

我有一个名为LocationHistory.json里面各种坐标外部文件。以供参考,这是怎样的数据列出:

{ 
    "data" : { 
     "items" : [ { 
     "kind" : "latitude#location", 
     "timestampMs" : "1374870896803", 
     "latitude" : 34.9482949, 
     "longitude" : -85.3245474, 
     "accuracy" : 2149 
     }, { 
     "kind" : "latitude#location", 
     "timestampMs" : "1374870711762", 
     "latitude" : 34.9857898, 
     "longitude" : -85.3526902, 
     "accuracy" : 2016 
     }, { 
     "kind" : "latitude#location", 
     "timestampMs" : "1374870651752", 
     "latitude" : 34.9857898, 
     "longitude" : -85.3526902, 
     "accuracy" : 2016 
     }] 
    } 
} 

我试图解析这个信息:

import json 

json_file = open ('LocationHistory.json') 
json_string = json_file.read() 
json_data = json.loads (json_string) 

locations = json_data ["data"] 

for location in locations: 
    print location["timestampMS"], location["latitude"], location["longitude"], location["accuracy"] 

为什么我得到的错误:

line 10, in

print location["timestampMS"], location["latitude"], location["longitude"], location["accuracy"]

TypeError: string indices must be integers

我可以找到解析.json文件的所有信息解释了我拥有的这种类型的解决方案。我哪里错了?

在此先感谢,我敢肯定,这应该是一个简单的错误...

回答

1

你要遍历数据项改为:

locations = json_data["data"]["items"] 
for location in locations: # now "locations" is a list of dictionaries 
    # ... 
+0

谢谢你这么多@alecxe,这解决了我问题。我所能得到的所有信息总是显示与我的“列表”中的“数据”不同的单个列表。感谢您的帮助 –

+0

alecxe,我如何将JSON数据文件解析为KML格式而不是将其打印出来?谢谢 :) –