Python入门:如何删除嵌套结构中quantity为0.000的LineItems字典
正确删除JSON中LineItems里quantity为"0.000"的条目
原代码问题分析
你的代码逻辑错误:在列表推导式中遍历的是单个LineItem字典的键(比如parent_id、productid这类),而非整个LineItems列表,导致无法筛选目标条目,所以输出空列表。
正确实现代码
import json # 读取JSON文件并加载数据 with open("examplejson.json", 'r') as f: data = json.load(f) # 遍历每个主元素,过滤LineItems for element in data: # 保留quantity不等于"0.000"的条目,替换原LineItems列表 element["LineItems"] = [item for item in element["LineItems"] if item["quantity"] != "0.000"] # 打印处理后的结果(验证用) print(json.dumps(data, indent=4)) # 可选:将处理后的数据写回文件,保留格式 with open("processed_examplejson.json", 'w') as f: json.dump(data, f, indent=4)
代码说明
- 使用
json.load(f)直接从文件对象加载数据,比json.loads(f.read())更简洁高效 - 通过列表推导式直接筛选LineItems:遍历每个条目,判断
quantity是否不等于"0.000",符合条件的保留,直接覆盖原LineItems列表 - 用
json.dumps格式化输出验证结果,json.dump写回文件时通过indent=4保持原有缩进格式
内容的提问来源于stack exchange,提问作者ANA
相关产品推荐
相关产品推荐

