如何使用Python规范化合并同域名的JSON数据?
Python 合并JSON中同域名的统计数据
需求:将包含重复域名的统计条目合并,把同一域名的所有字段整合到单个字典中,实现JSON数据的规范化。
原始JSON:
{ "total_stats": [ { "domain": "domain.com", "uptime": "100" }, { "domain": "domain.com", "threats": "345.01111783804436" } ] }
期望结果:
{ "total_stats": [ { "domain": "domain.com", "uptime": "100", "threats": "345.01111783804436" } ] }
实现代码
import json # 加载原始JSON数据(从文件读取可改用json.load()) raw_data = ''' { "total_stats": [ { "domain": "domain.com", "uptime": "100" }, { "domain": "domain.com", "threats": "345.01111783804436" } ] } ''' data = json.loads(raw_data) # 按域名分组合并字段 merged_dict = {} for entry in data["total_stats"]: domain = entry["domain"] if domain not in merged_dict: merged_dict[domain] = {} merged_dict[domain].update(entry) # 重构为目标格式 normalized_data = { "total_stats": list(merged_dict.values()) } # 输出格式化后的JSON print(json.dumps(normalized_data, indent=4)) # 保存到文件的写法 # with open("normalized_data.json", "w") as f: # json.dump(normalized_data, f, indent=4)
代码说明
- 数据加载:用
json.loads()将JSON字符串转为Python字典;读取本地文件时替换为json.load()方法。 - 分组合并:以域名作为键构建临时字典,遍历所有统计条目,通过
update()方法把同一域名的字段整合到同一字典中。 - 结构重构:将合并后的字典值转为列表,赋值给
total_stats键,得到规范化结构。 - 输出保存:用
json.dumps()格式化输出结果,或用json.dump()写入文件。
内容的提问来源于stack exchange,提问作者Rostyslav Malenko
相关产品推荐
相关产品推荐

