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

请求协助:访问API响应pagination字段触发KeyError问题

解决API响应中'pagination'字段的KeyError问题

我猜你遇到的问题大概率是这个API并不是在所有情况下都会返回pagination字段——比如当请求的limit参数对应的结果已经是最后一页、没有更多数据可返回时,API就不会包含这个字段,这也是为什么你访问title没问题(它是始终存在的顶级字段),但pagination会触发KeyError。

结合你的代码,给你几个可行的解决办法:

方法1:使用字典的get()方法(推荐)

get()方法允许你指定一个默认值,当键不存在时会返回这个默认值,而不是抛出错误:

response = requests.get("https://api.weather.gov/alerts?limit=1", timeout=5)
data = response.json()
# 当pagination不存在时返回None,你也可以换成空字典{}
pag_object = data.get('pagination', None)
if pag_object is not None:
    # 处理分页逻辑
    next_url = pag_object.get('next')
    print(f"下一页链接:{next_url}")
else:
    print("没有更多分页数据")

方法2:先检查字段是否存在

在访问字段前先判断键是否在字典中:

response = requests.get("https://api.weather.gov/alerts?limit=1", timeout=5)
data = response.json()
if 'pagination' in data:
    pag_object = data['pagination']
    next_url = pag_object['next']
    print(f"下一页链接:{next_url}")
else:
    print("当前没有分页信息")

补充说明

你提供的JSON片段确实包含pagination字段,但那可能是存在多页数据时的响应。实际请求时,如果API返回的结果已经是全部数据(比如测试环境只有1条告警),就不会返回这个字段。所以永远不要假设API的响应字段是始终存在的,尤其是分页、列表这类和数据量相关的字段。

内容的提问来源于stack exchange,提问作者klex52s

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 07:28:12