2015-09-27 127 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格式而不是將其打印出來?謝謝 :) –