如何从API响应解析JSON值?访问tasks键遇KeyError问题
解决KeyError:无法直接获取
tasks的问题 嘿,这问题很常见——你没注意到JSON的嵌套结构呀!
看你打印出的JSON响应:
{u'data': {u'tasks': [], u'more_results_available': 0, u'after': u'2018-03-18 22:00:20', u'before': u'2018-03-18 17:00:22'}, u'success': 1}
tasks并不是顶层字典的直接键,它是嵌套在data这个子字典里面的。你直接写my['tasks'],Python找不到这个键,自然就抛出KeyError了。
正确的获取方式
你需要先访问data键,再从里面取tasks:
response = requests.post('https://analysis.lastline.com/analysis/get_completed', files=files) my = response.json() # 正确获取tasks列表 tasks_list = my['data']['tasks'] print(tasks_list)
小技巧:先确认字典结构
如果不确定键的层级,可以先打印顶层字典的键,帮你理清结构:
print(my.keys()) # 输出: dict_keys(['data', 'success'])
这样你就能清楚看到,顶层只有data和success两个键,tasks藏在data里面。
内容的提问来源于stack exchange,提问作者el323
相关产品推荐
相关产品推荐

