我正在努力学习Python,但有以下问题:
我在运行这个时遇到一个错误,因为它在数据中看不到'name'
属性。
当我从JSON中一个接一个地获取项目时,它就起作用了。但是当我想在一个循环中执行它时,它失败了。
我想我的错误是错误的请求。它无法正确读取JSON并查看属性。在
import requests
import json
def main():
req = requests.get('http://pokeapi.co/api/v2/pokemon/')
print("HTTP Status Code: " + str(req.status_code))
print(req.headers)
json_obj = json.loads(req.content)
for i in json_obj['name']:
print(i)
if __name__ == '__main__':
main()
有两件事:如前所述,迭代
json_obj['name']
并不真正有意义-请改用json_obj['results']
。在另外,您还可以使用},这取决于您使用的是python2还是Python 3)。在
req.json()
,这是默认情况下requests
库附带的方法。这将把响应转换为一个字典,然后您可以像往常一样迭代(.iteritems()
或{因为所有口袋妖怪都保存在关键字
results
下的列表中,所以您首先需要获取该列表,然后对其进行迭代。在您想访问
json_object
中results
属性的name
属性,如下所示:我能够猜测您想要访问
^{pr2}$results
键,因为我已经查看了那就是
相关问题 更多 >
编程相关推荐