Python遍历JSON数据时内容重复输出3次问题求助
问题原因
你当前代码重复打印3次的核心原因是嵌套了不必要的内层遍历逻辑:
- 外层循环遍历
jsonObject["data"]列表,这里只有1个字典元素,所以外层只会执行1次 - 内层循环遍历这个字典的所有键值对,你给出的示例字典里有
type、id、attributes共3个键,所以内层循环会执行3次,每次都执行print(test)语句,自然会重复打印3次相同内容。
修正方案
你既需要保留遍历处理type、id、attributes字段的能力,又只需要打印一次ean的话,有两种实现思路:
方案1:把ean打印逻辑移到内层循环外
jsondata = { "data": [ { "type": "product", "id": "888888888", "attributes": { "ean": "888888888", "name": "product name", } } ] } jsonObject = jsondata for inner_dict in jsonObject["data"]: # 这里写你后续处理type、id、attributes字段的遍历逻辑 for key,value in inner_dict.items(): pass # 打印ean的逻辑放到内层循环外,每个data下的元素只执行一次 test = inner_dict["attributes"]["ean"] print(test)
方案2:在内层循环里加条件控制打印时机
如果你需要在内层循环逻辑中关联处理ean,可以加条件控制仅打印一次:
for inner_dict in jsonObject["data"]: for key,value in inner_dict.items(): # 你的多字段处理逻辑 if key == "attributes": test = value["ean"] print(test)
内容的提问来源于stack exchange,提问作者DiscordHelp
相关产品推荐
相关产品推荐

