You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python 3写入JSON文件格式求助:如何分隔多个JSON对象

解决Python写入JSON对象时的分隔问题

嘿,我来帮你搞定这个问题!你现在遇到的情况是因为每次写入JSON字符串时没有添加分隔符,导致所有对象都挤在了一起。咱们来一步步解决:

问题根源

你的代码里,file.write(json.dumps(saveData, ensure_ascii=False))只是把每个序列化后的JSON直接追加到文件中,没有在对象之间添加任何分隔符号,所以才会出现多个JSON连在一起的情况。另外还有个小细节:with语句会自动帮你关闭文件,后面的file.close()是多余的,甚至可能引发错误,记得删掉它!

解决方案

方案1:添加空格分隔(符合你给出的示例格式)

只需要在每次写入的JSON字符串后面加上一个空格即可:

import json

# 假设results是你的数据源列表
with open(file_name, 'w', encoding='utf-8') as file:
    for data in results:
        saveData = {}
        for k,v in data.items():
            saveData[k] = v if v else ''
        # 写入JSON并添加空格分隔
        file.write(json.dumps(saveData, ensure_ascii=False) + ' ')
# 这里不需要file.close(),with块会自动处理文件关闭

这样写入后的文件内容就会是你想要的:

{"AbandonmentDate": "", "Abstract": "", "Name": "ABC"} {"AbandonmentDate": "", "Abstract": "", "Name": "ABC"}

方案2:每行一个JSON对象(更推荐的JSON Lines格式)

如果追求更好的可读性,也可以让每个JSON对象单独占一行,这是行业内常用的JSON Lines格式,很多工具都原生支持:

import json

with open(file_name, 'w', encoding='utf-8') as file:
    # 用字典推导式简化saveData的生成逻辑,代码更简洁
    for data in results:
        saveData = {k: v if v else '' for k, v in data.items()}
        file.write(json.dumps(saveData, ensure_ascii=False) + '\n')

写入后的格式会是:

{"AbandonmentDate": "", "Abstract": "", "Name": "ABC"}
{"AbandonmentDate": "", "Abstract": "", "Name": "ABC"}

内容的提问来源于stack exchange,提问作者Sandeep Singh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.12 05:02:07