You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 05:06:06