python读写json、格式化写入json文件实现方式

Written by

in

文章目录
  • 基础转换 dumps/loads:内存对象 ↔ JSON字符串 dump/load:文件 ↔ 内存对象 数据类型限制 JSON不支持Python特有类型(如日期/类对象),此时需用pickle。 最佳实践 # 写入推荐 json.dump(data, file, indent=2, ensure_ascii=False) # 读取推荐 with open(“data.json”) as f: data = json.load(f) 以上为个人经验,希望能给大家一个参考,也希望大家多多支持风君子博客。 您可能感兴趣的文章: 全方位解析Python读写JSON数据的实战指南 使用python读写txt和json(jsonl)大文件的方法步骤 Python Json读写操作之JsonPath用法详解 Python如何读写JSON格式数据 Python读写JSON文件的操作详解 详解python读写json文件
  • 目录
    • JSON与Python序列化操作指南
      • 一、JSON概述
      • 二、序列化模块对比
      • 三、json模块核心方法
      • 四、JSON文件格式化技巧
    • 核心总结

      定义

      JSON(JavaScript Object Notation)是一种轻量级数据交换格式,基于ECMAScript子集,具有以下特性:

      • 语言无关的文本格式
      • 语法类似C语言家族(C/C++/Java/JavaScript等)
      • 人类可读且机器高效解析
      • 广泛用于网络数据传输

      Python中的映射关系

      JSON数组   ↔ Python列表(list)
      JSON对象  ↔ Python字典(dict)
      

      特性 json 模块 pickle 模块
      跨语言支持 ✔️ (多语言兼容) ❌ (仅Python)
      数据类型支持 基础类型(字典/列表/字符串/数字) 所有Python类型(类/函数等)
      安全性 高(无代码执行风险) 低(可能执行任意代码)
      典型用途 API数据交换、配置文件 Python对象持久化存储

      1. dumps():数据类型 → JSON字符串

      import json
      
      test_dict = {'one': 1, 'two': {2.1: ['a', 'b']}}
      json_str = json.dumps(test_dict)  # 关键操作
      
      print(f"原始类型: {type(test_dict)}")  # <class 'dict'>
      print(f"转换后类型: {type(json_str)}")  # <class 'str'>
      print(f"JSON字符串: {json_str}")      # {"one": 1, "two": {"2.1": ["a", "b"]}}
      

      注意:键2.1会被转换为字符串(JSON规范要求键必须是字符串)

      2. loads():JSON字符串 → Python数据类型

      new_dict = json.loads(json_str)  # 解析JSON字符串
      
      print(f"解析后类型: {type(new_dict)}")  # <class 'dict'>
      print(f"内容: {new_dict}")             # {'one': 1, 'two': {'2.1': ['a', 'b']}}
      

      3. dump():字典 → JSON文件

      with open("record.json", "w") as f:
          json.dump(new_dict, f)  # 写入文件
          print("JSON文件写入完成")
      

      生成文件内容

      {"one": 1, "two": {"2.1": ["a", "b"]}}
      

      4. load():JSON文件 → Python字典

      with open("record.json", "r") as load_f:
          load_dict = json.load(load_f)  # 从文件加载
      
      print(f"文件解析类型: {type(load_dict)}")  # <class 'dict'>
      print(f"内容: {load_dict}")               # {'one': 1, 'two': {'2.1': ['a', 'b']}}
      

      两种等效实现方式:

      # 方法1:dumps() + 手动写入
      with open("format_json.json", "w") as f:
          f.write(json.dumps(load_dict, indent=4, ensure_ascii=False))
      
      # 方法2:直接使用dump()参数
      with open("format_json.json", "w") as f:
          json.dump(load_dict, f, indent=4, ensure_ascii=False)
      

      关键参数

      • indent=4:4空格缩进格式化
      • ensure_ascii=False:支持非ASCII字符(如中文)

      格式化后文件

      {
          "one": 1,
          "two": {
              "2.1": [
                  "a",
                  "b"
              ]
          }
      }
      

      基础转换

      • dumps/loads:内存对象 ↔ JSON字符串
      • dump/load:文件 ↔ 内存对象

      数据类型限制

      JSON不支持Python特有类型(如日期/类对象),此时需用pickle

      最佳实践

      # 写入推荐
      json.dump(data, file, indent=2, ensure_ascii=False) 
      
      # 读取推荐
      with open("data.json") as f:
          data = json.load(f)
      

      以上为个人经验,希望能给大家一个参考,也希望大家多多支持风君子博客。

      您可能感兴趣的文章:

      • 全方位解析Python读写JSON数据的实战指南
      • 使用python读写txt和json(jsonl)大文件的方法步骤
      • Python Json读写操作之JsonPath用法详解
      • Python如何读写JSON格式数据
      • Python读写JSON文件的操作详解
      • 详解python读写json文件

      站内搜索