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

从API返回JSON中获取product字段值时出现NameError的问题

问题排查与解决方案

错误原因

  1. 核心问题:你用json.dumps(data2)把API返回的字典对象转换成了字符串,字符串类型无法通过['product']这种字典索引方式取值,这是导致后续取值失败的关键。
  2. 你提到的NameError: name 'string' is not defined,大概率是代码其他位置误写了string(比如变量名拼写错误),但当前贴出的代码片段里未发现相关问题,先聚焦JSON取值的核心错误。

正确获取product字段的方法

直接操作r.json()返回的字典对象,按照JSON的层级结构逐层访问:
从示例JSON的层级路径是:orders → order(数组,取第一个元素[0]) → lineitems → lineitem(数组,取第一个元素[0]) → product

修正后的代码

import requests
import json

# 假设identifier、secret、API_ENDPOINT已提前定义
data = {
    'identifier': identifier,
    'secret': secret, 
    'action': 'GetOrders',
    'id': 3267,
    'responsetype': 'json',
} 
# 发送请求并将响应解析为Python字典
r = requests.post(url=API_ENDPOINT, data=data) 
data2 = r.json()

# 逐层获取product字段值
try:
    product_name = data2['orders']['order'][0]['lineitems']['lineitem'][0]['product']
    print(product_name)  # 输出示例: Dedicated Server Windows
except KeyError as e:
    print(f"目标字段不存在: {e}")

额外提示

  • 增加异常捕获可以避免因API返回结构变动导致程序直接崩溃。
  • 不要随意将字典转成字符串,除非你需要打印输出或保存为文本文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 08:16:02