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

Python遍历JSON响应DATA字段所有项仅返回首项如何解决

问题原因

你现在的代码有两个核心问题,导致只能拿到单条数据:

  • 直接遍历Python字典时,默认迭代得到的是字典的键名(也就是DATA下的"0"/"1"/"2"字符串),不是键对应的子数据对象,取值逻辑本身有误。
  • return语句写在了for循环内部,第一次循环执行到return时就会直接终止整个函数运行,后续的循环逻辑根本不会执行,这是只返回首条数据的最主要原因。
正确写法

先初始化一个空列表存放所有解析完成的条目,遍历DATA字典的所有值做字段映射,把转换后的每条数据都追加到列表中,等所有循环执行完成后,再统一返回结果即可。
参考代码:

# 初始化结果列表
parsed_data = []
# 遍历DATA下所有子项的值
for item in r["DATA"].values():
    single_record = {
        "PRODUCTCODE": item["PC"],
        "NAME": item["NM"],
        "AMOUNTBALANCE": item["AMOUNT"],
        "ACCOUNT": item["ACT"]
    }
    parsed_data.append(single_record)

# 所有数据解析完成后再返回
return jsonify({
    "status": "success",
    "code": "00",
    "data": parsed_data
})

返回结果中的data字段会是包含3条用户数据的数组,结构如下:

[
    {
        "PRODUCTCODE": "100",
        "NAME": "ALEX",
        "AMOUNTBALANCE": "210,912",
        "ACCOUNT": "123123456"
    },
    {
        "PRODUCTCODE": "100",
        "NAME": "MARCO",
        "AMOUNTBALANCE": "500,200",
        "ACCOUNT": "123555456"
    },
    {
        "PRODUCTCODE": "100",
        "NAME": "TIFFANY",
        "AMOUNTBALANCE": "712,111",
        "ACCOUNT": "123666981"
    }
]

注:Python 3.7及以上版本中字典默认保持插入顺序,使用.values()遍历得到的条目顺序和原JSON中的顺序一致;如果使用更低版本Python,可以先对键做整数排序后再取值保证顺序。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 19:48:28