Python如何从JSON数据中批量提取book字段下的所有name值
解决方法
错误原因
你触发KeyError的原因是取值对象引用错误:接口返回的顶层cont字典仅包含books这类顶级键,不存在直接的book键。你遍历cont['books']得到的每一个循环变量,才是包含book下级字段的对象。
正确实现代码
基础实现
import requests url = "https://www.storytel.com/api/search.action?q=white%20feather" r = requests.get(url) cont = r.json() data = cont['books'] # 遍历每个books下的元素,从单个元素中取book下的name for item in data: print(item['book']['name'])
健壮版实现(避免个别数据结构异常导致报错)
import requests url = "https://www.storytel.com/api/search.action?q=white%20feather" r = requests.get(url) cont = r.json() data = cont['books'] for item in data: # 先判断字段存在再取值 if 'book' in item and 'name' in item['book']: print(item['book']['name'])
内容的提问来源于stack exchange,提问作者Romano
相关产品推荐
相关产品推荐

