如何将巨型JSON数组拆分为独立的JSON对象?
拆分大型JSON数组为独立JSON对象
针对包含数百万甚至上亿条嵌套对象的大型JSON文件,直接加载整个文件到内存会引发内存溢出问题,必须采用流式处理方案,以下两种方法高效且实用:
方法1:Python + ijson(适合编程定制场景)
ijson是一款流式JSON解析库,无需加载整个文件即可逐元素处理,完美适配超大型文件。
- 安装依赖:
pip install ijson
- 处理脚本示例:
import ijson import json # 流式读取原始大JSON文件,逐行输出目标格式 with open("input.json", "rb") as infile, open("output.json", "w") as outfile: # 遍历顶层对象中"a"数组的每个元素 for item in ijson.items(infile, "a.item"): # 将元素包装为目标格式并写入,每行一个独立JSON对象 outfile.write(f'{{"a": {json.dumps(item)}}}\n')
方法2:jq命令行工具(无需编码,快速批量处理)
jq是专门处理JSON的命令行工具,内置流式处理能力,适合快速完成批量转换。
直接执行以下命令:
jq -c '.a[] | {"a": .}' input.json > output.json
-c:将每个JSON对象压缩为单行输出,便于后续存储或处理.a[]:遍历顶层对象中a数组的所有元素{"a": .}:将每个元素包装为{"a": 原元素}的目标格式
内容的提问来源于stack exchange,提问作者mani_nz
相关产品推荐
相关产品推荐

