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

如何用Python根据条件从JSON响应中提取指定id值?

问题分析与修复

你的代码存在核心逻辑错误,导致无法正确提取目标值,以下是问题说明和修复方案:

错误点

  • 循环操作对象错误:遍历list_of_pagp列表时,i是当前迭代的字典元素,但你却试图访问整个列表的channelGroupId键,这会触发TypeError(列表不支持字典的键访问方式)。
  • ID提取方式错误:找到目标项后,你错误地操作列表而非当前字典元素,且id未加引号(会被当成变量而非字典键),正确方式是从当前字典中提取'id'对应的值。
  • 额外隐患:"success" in response.text的判断逻辑不可靠,接口返回的成功提示是"Get operation is successful",若接口返回格式变化,这个判断可能失效,建议直接用返回的statusCode判断。

修正后的代码

if response.status_code == 200:
    full_response = response.json()
    # 用statusCode判断请求成功更可靠
    if full_response['status']['statusCode'] == 0:
        list_of_pagp = full_response['items']
        instanceId = None
        for item in list_of_pagp:
            if item['channelGroupId'] == 26:
                instanceId = item['id']
                break
        if instanceId is not None:
            print(instanceId)
        else:
            print("未找到channelGroupId为26的项")

代码说明

  1. 替换成功判断逻辑,改用响应内的statusCode,避免字符串匹配的不确定性。
  2. 遍历列表时用item指代当前字典元素,正确访问其channelGroupId键。
  3. 找到目标项后,从当前字典中提取'id'对应的值。
  4. 增加未找到目标项的处理逻辑,避免instanceId未定义导致的报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 15:45:35