如何修正并合并包含多个根元素的JSON内容
合并多根元素JSON的解决方案
标准JSON规范仅允许存在单个根元素,你给出的内容属于行式JSON(JSON Lines)格式,每一行是独立的JSON对象,不符合常规JSON解析器的要求,可根据使用场景选择以下两种合并方案:
方案1:合并为数组格式(通用方案)
将所有独立JSON对象放入一个数组的方括号内,对象之间用逗号分隔,修正后内容如下:
[ {"a": 1}, {"a": 2}, {"a": 3} ]
该格式兼容所有标准JSON解析器,适合绝大多数批量数据处理场景。
方案2:合并为单个根对象(需区分对象时使用)
如果需要为每个对象设置唯一标识,可以封装到一个顶层JSON对象中,示例如下:
{ "record_1": {"a": 1}, "record_2": {"a": 2}, "record_3": {"a": 3} }
批量大文件处理方法
如果需要处理的文件体量较大,可以用工具快速完成转换:
- Linux/macOS 环境可直接使用
jq工具,执行命令jq -s '.' 原文件路径 > 输出文件路径即可直接将行式JSON转换为数组格式 - 也可以用Python快速处理,示例代码如下:
import json res = [] # 读取行式JSON文件 with open("input.jsonl", "r", encoding="utf-8") as f: for line in f: line_content = line.strip() if line_content: res.append(json.loads(line_content)) # 输出标准JSON数组 with open("output.json", "w", encoding="utf-8") as f: json.dump(res, f, indent=2, ensure_ascii=False)
内容的提问来源于stack exchange,提问作者Marlone L C'las
相关产品推荐
相关产品推荐

