2026-10-22 14:08:10
在Python中,将字典内容写入JSON文件可以通过json模块实现,主要步骤包括:使用json.dumps()将字典转换为JSON格式字符串(可选缩进格式化),再通过文件操作写入.json文件。以下是详细方法和示例:
核心步骤导入json模块
import json准备字典数据字典可以是普通字典或嵌套结构(如示例中的defaultdict)。
转换为JSON字符串
无缩进(紧凑格式):
json_str = json.dumps(your_dict)有缩进(易读格式,参数indent控制缩进空格数):
json_str = json.dumps(your_dict, indent=4)写入文件使用with open()确保文件正确关闭,模式为'w'(写入):
with open('output.json', 'w') as f: f.write(json_str)文件路径确保程序有权限写入目标路径(如'data/output.json'需确认data目录存在)。
编码问题如需处理非ASCII字符(如中文),添加ensure_ascii=False:
json_str = json.dumps(test_dict, indent=4, ensure_ascii=False)直接写入文件(简化写法)使用json.dump()直接写入文件,无需手动调用write():
with open('output.json', 'w') as f: json.dump(test_dict, f, indent=4)数据类型限制JSON仅支持基本类型(字典、列表、字符串、数字、布尔值、None)。若字典包含自定义对象,需通过default参数转换或实现序列化方法。
无缩进 (compact.json):
{"version": "1.0", "results": {"label": ["haha", "xixi"], "data": [234, 123], "score": [0.3, 0.7]}, "explain": {"used": true, "details": "this is for json test"}}有缩进 (readable.json):
{ "version": "1.0", "results": { "label": ["haha", "xixi"], "data": [234, 123], "score": [0.3, 0.7] }, "explain": { "used": true, "details": "this is for json test" }}通过上述方法,可灵活控制JSON文件的格式,适应不同场景需求。