如何将多行多记录JSON字符串转换为单行JSON记录?
嘿,我刚好处理过类似的需求!把这种逗号分隔的多行JSON记录转成每条单独的单行JSON,这里有几个实用的方法:
方法1:用Python脚本批量处理
如果你习惯用代码处理,可以写个简单的Python脚本,自动把每个JSON对象转成单行:
import json import re # 假设这是你的原始JSON字符串 raw_json_str = '''{ "field1" : "aa11", "field2" : "aa22", "structField" : { "sf1" : "aaa11", "sf2" : "aaa22" } }, { "field1" : "bb11", "field2" : "bb22", "structField" : { "sf1" : "bbb11", "sf2" : "bbb22" } }''' # 拆分每个独立的JSON对象(处理逗号分隔的情况) json_objects = re.split(r'(?<=}),\s*(?={)', raw_json_str) # 逐个转成单行JSON并输出 for obj in json_objects: try: parsed = json.loads(obj) print(json.dumps(parsed)) except json.JSONDecodeError as e: print(f"解析出错:{e}")
这个脚本会自动拆分每个JSON对象,然后用json.dumps()输出紧凑的单行格式,还能处理解析错误的情况。
方法2:用命令行工具jq(推荐给熟悉终端的同学)
如果你的数据在文件里,或者能拿到终端里处理,jq工具简直是神器!只需要一行命令:
# 如果你是处理文件: jq -c '.' your_input_file.json # 如果是处理字符串: echo '{ "field1" : "aa11", ... }, { "field2" : "bb11", ... }' | jq -c '.'
-c参数就是告诉jq输出紧凑的单行JSON,它会自动处理嵌套结构,完美输出每条单行记录。
方法3:手动调整(适合少量数据)
如果数据量很小,不想折腾工具,也可以手动处理:
- 先把所有换行符和多余的空格删掉
- 找到每个
},的位置,在后面加个换行 - 注意要保留嵌套结构里的
},别误删
不过这个方法只适合几条数据的情况,数据多了很容易出错,不推荐。
内容的提问来源于stack exchange,提问作者icuefue
相关产品推荐
相关产品推荐

