2017-03-05 79 views
1
{ 
    "response": { 
     "version": "0.1", 
     "termsofService": "http://www.wunderground.com/weather/api/d/terms.html", 
     "features": { 
      "conditions": 1 
     } 
    }, 

    "current_observation": { 
     "image": { 
      "url": "http://icons.wxug.com/graphics/wu2/logo_130x80.png", 
      "title": "Weather Underground", 
      "link": "http://www.wunderground.com" 
     }, 
     "display_location": { 
      "full": "San Francisco, CA", 
      "city": "San Francisco", 
      "state": "CA", 
      "state_name": "California", 
      "country": "US", 
      "country_iso3166": "US", 
      "zip": "94102", 
     } 
    } 
} 

我試圖解析高於此JSON數據,並通過這樣不能搶JSON字典鍵

j = json.loads(string) 
keys = j.keys() 
print(keys) 
#current_observation 

print(j['current_observation']['zip']) 

得到「拉鍊」的值,那麼我會得到這個錯誤

Traceback (most recent call last): 
    File ".\wunder.py", line 17, in <module> 
    print(j['current_observation']['zip']) 
KeyError: 'zip' 

所以我試圖做的總結它是解析JSON數據並取得一點成功的zip值。

+0

什麼'打印(鍵)'給你? – user82395214

+0

如果您無法確定JSON的格式是否正確,請參閱您是否可以使用:'for key,j.items()中的值: print key,value'。 – user82395214

+1

我看到json的兩個問題。把JSON在 http://jsonlint.com/ 有問題: 1添加一個右括號爲'image' 2-'後zip' –

回答

3

你錯過了display_location映射的字典:

print(j['current_observation']['display_location']['zip'])