如何用Python动态生成含data数组的标准JSON文件?
解决方法
核心就是先把所有去重后的元素收集成一个列表,再整体包装成带data键的字典,最后一次性序列化写入文件——别再循环写单个JSON对象了,那必然生成非标准格式。
完整代码示例
import json # 替换成你自己的900+元素列表 raw_items = [ {"id": 1, "name": "张三"}, {"id": 2, "name": "李四"}, {"id": 1, "name": "张三"}, # 重复元素 {"id": 3, "name": "王五"} ] # 第一步:对字典列表去重 unique_items = [] seen = set() for item in raw_items: # 将字典转为排序后的元组(确保内容相同的字典被判定为重复) item_key = tuple(sorted(item.items())) if item_key not in seen: seen.add(item_key) unique_items.append(item) # 第二步:包装成标准JSON结构并写入文件 output = {"data": unique_items} with open("result.json", "w", encoding="utf-8") as f: json.dump(output, f, indent=2, ensure_ascii=False)
效果说明
运行后生成的result.json是标准合法格式:
{ "data": [ {"id": 1, "name": "张三"}, {"id": 2, "name": "李四"}, {"id": 3, "name": "王五"} ] }
关键细节
- 去重用
sorted(item.items())转元组:避免因为字典键的顺序不同(比如{"id":1,"name":"张三"}和{"name":"张三","id":1})被误判为不同元素。 - 一次性写入整个字典:用
json.dump直接序列化包含data数组的字典,确保生成的是符合规范的JSON结构,而非多个独立对象拼接。
内容的提问来源于stack exchange,提问作者MiusiZ
相关产品推荐
相关产品推荐

