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

Python中如何检查API GET请求响应中是否存在指定JSON值

问题修复方案

你的代码无法运行主要有两个核心问题,对应修复逻辑如下:

  • 变量名不匹配:你将接口JSON解析结果赋值给了response变量,后续判断时却写了res,运行时会触发变量未定义的报错。
  • 缺少基础的请求、响应校验:直接调用.json()没有提前判断请求是否成功、响应是否为合法JSON格式,遇到接口报错、返回非JSON内容时会直接抛异常。

场景1:判断响应顶层键是否存在Tom

修正变量名,加上基础异常捕获即可:

import requests

try:
    req = requests.get('MYAPI', timeout=10)
    # 校验请求状态码,4xx/5xx时直接抛错
    req.raise_for_status()
    response = req.json()
except Exception as err:
    print(f"请求异常: {err}")
else:
    # 变量名和赋值保持一致
    if 'Tom' in response:
        print('Welcome')

场景2:判断响应中某个键对应的值为Tom

如果你的目标不是判断键名,而是判断某个字段的取值是不是Tom,需要先取到对应字段的值再判断,避免直接遍历顶层结构匹配不到:

import requests

try:
    req = requests.get('MYAPI', timeout=10)
    req.raise_for_status()
    response = req.json()
except Exception as err:
    print(f"请求异常: {err}")
else:
    # 示例1:判断name字段的值是否等于Tom,get方法找不到键时默认返回None,不会触发KeyError
    if response.get('name') == 'Tom':
        print('Welcome')

    # 示例2:如果Tom在嵌套的列表字段里,比如返回结构为 {"user_list": ["Tom", "Jerry"]}
    # if 'Tom' in response.get('user_list', []):
    #     print('Welcome')

注意:如果接口返回的是多层嵌套的JSON结构,需要顺着层级逐层取值后再做判断,不要直接在顶层对象用in做全局匹配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 05:00:49