
本文介绍如何使用 json.dump() 的 indent 参数实现 JSON 文件的可读性格式化,解决压缩输出与过度换行的问题,兼顾美观与实用性。
本文介绍如何使用 `json.dump()` 的 `indent` 参数实现 json 文件的可读性格式化,解决压缩输出与过度换行的问题,兼顾美观与实用性。
在 Python 中将数据序列化为 JSON 文件时,默认的 json.dump() 输出是紧凑无换行的(如 {"key":[1,2,3],"other":"val"}),不利于人工阅读和调试;而错误地修改 separators(例如设为 (',\n', ':'))又可能导致每个键值对或数组元素被强制换行,破坏结构层级,降低可读性。
正确且最简的方式是使用内置的 indent 参数——它专为“漂亮打印”(pretty-printing)设计,能智能缩进对象和数组,保持语义清晰:
import json
# 假设 final 是你的数据字典
with open(output_file_path_final, 'w', encoding='utf-8') as f:
json.dump(final, f, indent=4) # ✅ 推荐:4 个空格缩进,结构清晰✅ 效果示例(片段):
{
"frame.number": [80.0, 87.0, 93.0, 95.0, 99.0],
"frame.timestamp [s]": [
1324055659.394,
1324055659.488,
1324055659.607,
1324055659.613,
1324055659.695
],
"{31} EVSE Maximum Power Limit [W]": [null, null, null, null, null]
}? 关键说明:
立即学习“Python免费学习笔记(深入)”;
- indent=4 表示使用 4 个空格缩进(也可传入 2、'\t' 或任意字符串);
- 若设为 indent=0、indent=None(默认)或 indent='',则仅插入必要换行,不缩进;
- separators 用于控制项间分隔符(如 , 和 : 后的空白),不负责缩进布局,滥用易导致格式混乱;
- 建议始终指定 encoding='utf-8'(尤其含中文或特殊字符时),避免编码异常。
? 进阶提示:如需进一步控制输出(如排序键、处理非标准类型),可组合使用 sort_keys=True 或自定义 default 函数,但 indent 是实现可读 JSON 的第一且最关键的参数。
总结:告别手动调参 separators,用 indent 实现专业级 JSON 格式化——简洁、标准、可靠。


















