从JSON获取数据得到keyerror 0

时间:2017-07-11 22:59:43

标签: python arrays json list dictionary

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

提前致谢!

1 个答案:

答案 0 :(得分:0)

当您尝试访问KeyError时,weather没有发生,它发生在json.loads的simplejson调用中。因为,正如Ryan所提到的,response对象已经是json(以字典的格式),json.loads期望一个字符串。

直接使用response对象应该可以正常工作

response = requests.get(url).json()
print response['weather']