2017-07-11 10 views
0
import requests 
import simplejson as json 
from pprint import pprint 

url = 'http://api.openweathermap.org/data/2.5/weatherq=london&APPID=3eee8f807f05e481750751ea15da9b80' 
response = requests.get(url).json() 
pprint(response) 

を取得取得します1}、 u'cod ':200、 u'coord':{u'lat ':29.94、u'lon':-90.35}、 u'dt ':1499812500、 u'id':4322034、 u'main ':{u'humidity':78、 u'pressure ':1017 u'temp':301.58、 u'temp_max ':302.15、 u'temp_min':300.15}、 U」名前 ':u'L ondon ' u'sys ':{u'country':u'GB'、 u'id ':1184、 u'message':0.0037、 u'sunrise ':1499771353、 u'sunset': 1499821484、 u'type ':1}、 u'visibility':16093、 u'weather ':[u'description':u'light rain '、 u'icon':u'10d '、 'u'id':500、 u'main ':u'Rain'}、 {u'description ':u'thunderstorm'、 u'icon ':u'11d'、 u'id ':211、 u'main ':u'Thunderstorm'}] u'wind ':{u'deg':191.503、u'speed ':2.17}}JSONからのデータは、私は私の端末でこのコードを実行すると、私は</p> <p>{u'baseを取得KeyError例外0

私は

print(resp_dict['weather']) 

または

print(resp_dict['weather'][0]) 

を実行したときに、私はその後、私は、キーからデータを取得することができるようにJSONデータのうち、辞書を作成するには

resp_dict = json.loads(response) 

を実行しますが、 keyerror 0を取得するだけですか?どんな助けもありがとう!

また、私は実行する場合だけ

print resp_dict 

私はまた、事前にKeyError例外0

感謝を入手します!

+0

を動作するはずです。 '.json()'はすでにあなたのためにそれを行いました。 'KeyError'がどうなるかは分かりませんが、代わりに' response ['weather'] 'を表示してみてください。 (また、Python 3を使用してください) – Ryan

答えて

0

にアクセスしようとすると、KeyErrorは発生しません。json.loadsのsimplejsonコールの内部で発生します。 Ryanが述べたように、responseオブジェクトは既にjson(辞書の形式)であり、json.loadsは文字列が必要です。

直接responseオブジェクトを使用すると、あなたはresponse` `に` json.loads`を使用する必要はありません

response = requests.get(url).json() 
print response['weather'] 
関連する問題

 関連する問題