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)
当我在终端中运行此代码时,我得到了
{u' base&#39 ;: u' station', 你的云':{u'所有':1}, 你鳕鱼':200, 你':{u' lat':29.94,u' lon':-90.35}, 你':1499812500, 你':4322034, 你主要':{u'湿度':78, 你压力':1017, 你临时':301.58, 你' temp_max':302.15, 你' temp_min':300.15}, 你的名字':你'伦敦', 你':{你'国家':你' GB', 你好吗':1184, 你的消息':0.0037, 你'日出':1499771353, 你'夕阳':1499821484, 你键入':1}, 你能见度':16093, 天气':[{u'描述':你'小雨', 你的图标':你' 10d', 你好吗':500, 你主要':你' Rain'}, {u'描述':你'雷暴', 你的图标':你' 11d', 你':211, 你主要的':你的雷雨'}], 你':{u' deg':191.503,你'速度':2.17}}
然后我跑resp_dict = json.loads(response)
使用json数据创建字典,以便我可以从键中获取数据,但是当我运行时
print(resp_dict['weather'])
或
print(resp_dict['weather'][0])
我刚收到一个keyerror 0?任何帮助将不胜感激!
如果我只是跑
print resp_dict
我也得到了一个keyerror 0
提前致谢!
答案 0 :(得分:0)
当您尝试访问KeyError
时,weather
没有发生,它发生在json.loads
的simplejson调用中。因为,正如Ryan所提到的,response
对象已经是json(以字典的格式),json.loads
期望一个字符串。
直接使用response
对象应该可以正常工作
response = requests.get(url).json()
print response['weather']