Python新手求助:如何获取响应中meta.pagination.links.next值?
解决获取接口分页next链接的KeyError问题
你的代码报错是因为找错了next字段的位置,而且没考虑最后一页可能没有next键的情况:
错误原因
你直接从json_data根节点取next,但接口返回的next实际嵌套在meta -> pagination -> links路径下;另外当数据到最后一页时,links里可能根本没有next这个键,直接用[]访问就会触发KeyError。
修复方案
用更安全的方式访问嵌套字段,同时处理无下一页的情况:
url = "theurl" headers = {'Accept': 'application/json', 'X-auth-Token': 'thetoken'} response = requests.get(url, headers=headers) json_data = response.json() # 逐层访问嵌套结构,用get()避免KeyError try: pagination_links = json_data['meta']['pagination']['links'] nexturl = pagination_links.get('next') # 无next时返回None,不会报错 if nexturl: print(f"下一页链接:{nexturl}") # 这里可以继续处理nexturl,比如发起下一页请求 else: print("已经是最后一页,没有下一页链接") except KeyError as e: print(f"获取分页信息失败,缺失必要字段:{e}")
关键说明
- 用
get('next')替代['next']:当links里没有next键时,get()会返回None,而不是抛出KeyError,能让代码更健壮。 - 外层加
try-except:防止meta、pagination、links这些上层字段缺失导致的报错,比如接口返回格式异常时能捕获问题。
内容的提问来源于stack exchange,提问作者Peter K
相关产品推荐
相关产品推荐

