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
相关产品推荐
相关产品推荐

