Python如何判断请求返回JSON中extension键值是否为txt并输出提示
问题诊断
你的代码存在2个核心错误:
- 误用了导入的
json模块名取值:你已经将请求返回的JSON数据存储在data_JSON变量中,不能直接写json['diffs']调用 - 层级取值错误:从给出的JSON结构可以看到,
extension字段存放在diffs数组下每个元素的source子对象中,不能直接从element层级取extension
修正后可运行代码
from requests import get # 先校验请求状态,避免接口异常导致后续逻辑报错 resp = get('http://你的实际请求地址', auth=('user', 'password')) resp.raise_for_status() # 接口返回非200状态码时会直接抛出异常,方便排查问题 data_json = resp.json() for element in data_json['diffs']: # 先判断字段是否存在,避免JSON结构变动时出现KeyError报错 if 'source' in element and element['source'].get('extension') == 'txt': print("have txt")
优化说明
- 移除了未使用的
json模块导入,精简代码 - 新增了接口请求状态校验逻辑,降低异常排查成本
- 增加了字段存在性判断,兼容JSON结构轻微变动的场景
内容的提问来源于stack exchange,提问作者Thomaz Sousa
相关产品推荐
相关产品推荐

