python如何将字典内容写入json文件

兄弟打扰一下,python如何将字典内容写入json文件
最新回答
一身正气结果漏气

2026-10-22 14:08:10

在Python中,将字典内容写入JSON文件可以通过json模块实现,主要步骤包括:使用json.dumps()将字典转换为JSON格式字符串(可选缩进格式化),再通过文件操作写入.json文件。以下是详细方法和示例:

核心步骤
  1. 导入json模块

    import json
  2. 准备字典数据字典可以是普通字典或嵌套结构(如示例中的defaultdict)。

  3. 转换为JSON字符串

    无缩进(紧凑格式):

    json_str = json.dumps(your_dict)

    有缩进(易读格式,参数indent控制缩进空格数):

    json_str = json.dumps(your_dict, indent=4)
  4. 写入文件使用with open()确保文件正确关闭,模式为'w'(写入):

    with open('output.json', 'w') as f: f.write(json_str)
完整示例示例1:无缩进格式from collections import defaultdictimport json# 构建嵌套字典video = defaultdict(list)video["label"].extend(["haha", "xixi"])video["data"].extend([234, 123])video["score"].extend([0.3, 0.7])test_dict = { 'version': "1.0", 'results': video, 'explain': { 'used': True, 'details': "this is for json test" }}# 转换为无缩进JSON字符串并写入文件json_str = json.dumps(test_dict)with open('compact.json', 'w') as f: f.write(json_str)示例2:带缩进格式# 同上字典结构,仅修改dumps参数json_str = json.dumps(test_dict, indent=4)with open('readable.json', 'w') as f: f.write(json_str)关键注意事项
  1. 文件路径确保程序有权限写入目标路径(如'data/output.json'需确认data目录存在)。

  2. 编码问题如需处理非ASCII字符(如中文),添加ensure_ascii=False:

    json_str = json.dumps(test_dict, indent=4, ensure_ascii=False)
  3. 直接写入文件(简化写法)使用json.dump()直接写入文件,无需手动调用write():

    with open('output.json', 'w') as f: json.dump(test_dict, f, indent=4)
  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文件的格式,适应不同场景需求。