2014-10-03 84 views
0

樣本數據庫:獲取JSON信息在Python

"metros" : [ 
     { 
      "code" : "SCL" , 
      "name" : "Santiago" , 
      "country" : "CL" , 
      "continent" : "South America" , 
      "timezone" : -4 , 
      "coordinates" : {"S" : 33, "W" : 71} , 
      "population" : 6000000 , 
      "region" : 1 
     } , { 
      "code" : "LIM" , 
      "name" : "Lima" , 
      "country" : "PE" , 
      "continent" : "South America" , 
      "timezone" : -5 , 
      "coordinates" : {"S" : 12, "W" : 77} , 
      "population" : 9050000 , 
      "region" : 1 
     } 

我想打印所有城市名稱。我的代碼是:

Jdata = json.loads(self.data) 
for i in Jdata["metros"]: 
    print Jdata["name"] 

但是當我運行此我得到「KeyError異常:‘名’」

什麼是正確的語法來獲得城市的名字嗎?

回答

4

嘗試:

for city in Jdata['metros']: 
    print city['name'] 

當您使用Jdata['name'],它試圖尋找在地鐵的關鍵​​,這顯然不存在。

+2

謝謝,它的工作原理! – Chris 2014-10-03 05:35:17

1
{"metros":[{"code":"SCL","name":"Santiago","Region":"1"},{"code":"LIM","name":"Lima","Region":"1"}], 
} 

然後你可以使用你的代碼:

import json 
from pprint import pprint 
json_data=open('json_data') 

data = json.load(json_data) 
pprint(data) 
json_data.close() 
With data, you can now also find values in like so: 

data["metros"][1]["name"]