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

Python如何将字典数组写入JSON文件且每个字典单独占一行

问题原因

Python标准库的json模块的indent参数是全局生效的,只要设置该参数,所有嵌套结构都会被展开换行,没有单独控制「仅数组层级换行、对象内部保持单行」的配置,所以你用indent会得到字典内部键值对也拆分的结果。

解决方案

你可以手动拼接JSON内容,不需要额外安装第三方依赖,生成的格式完全符合预期:

import json

def save_summary(data, file_path):
    # 将每个字典转成无缩进的合法JSON字符串,统一添加前置缩进
    line_items = [f"    {json.dumps(item, ensure_ascii=False)}" for item in data]
    # 拼接数组括号、换行和逗号
    full_content = "[\n" + ",\n".join(line_items) + "\n]"
    # 写入文件
    with open(file_path, "w", encoding="utf-8") as outfile:
        outfile.write(full_content)

# 注意之前存储返回结果的变量名为result,调用时不要写错变量名
save_summary(result, "apartment_summary.json")

原有代码的其他小问题

  • 你定义save_summary时第二个参数传入了文件名,但函数内部硬编码了写入路径'apartment_summary.json',传参没有生效,上面的修正代码已改为使用传入的文件路径参数。
  • 你调用时写的save_summary(results, ...)里的results变量名和之前存储返回值的result不一致,运行会报未定义错误,调用时注意变量名对应。

内容的提问来源于stack exchange,提问作者supercar lover

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 05:45:01