能否将对象集合序列化为每行一个JSON对象?
可以实现!这种格式叫做JSON Lines(JSONL)
当然没问题啦!你说的这种每行一个独立JSON对象的格式,其实有个专门的名字——JSON Lines(常简称JSONL),它本身就是一种被广泛使用的标准格式,特别适合处理大量结构化数据或者流式场景。
核心思路很简单:不要把整个对象集合当成一个JSON数组来序列化,而是逐个处理每个对象,把每个对象单独序列化为合法的JSON字符串,然后每行写入一个。
举个Python的实际例子吧:
假设你有这样一个对象列表:
data = [ {"tag1": "value1", "tag2": "value2"}, {"tag1": "value3", "tag2": "value6"}, {"tag1": "value4", "tag2": "value7"}, {"tag1": "value5", "tag2": "value8"} ]
不要用常规的json.dumps(data)生成数组,而是遍历每个对象单独序列化:
import json # 写入文件 with open('output.jsonl', 'w', encoding='utf-8') as f: for item in data: json.dump(item, f) # 把单个对象转成JSON字符串写入 f.write('\n') # 写完一个就换行
这样生成的文件内容就是你想要的样子:
{"tag1": "value1", "tag2": "value2"} {"tag1": "value3", "tag2": "value6"} {"tag1": "value4", "tag2": "value7"} {"tag1": "value5", "tag2": "value8"}
需要注意的是,每个单独的对象必须符合JSON规范(比如键必须用双引号包裹,你的示例里键没加双引号,实际使用时要修正哦)。
其他编程语言的实现逻辑也是类似的,只要找到对应的JSON序列化方法,逐个处理对象并换行即可。
内容的提问来源于stack exchange,提问作者Loreno
相关产品推荐
相关产品推荐

