Skip to content

JSON模块

JSON 模块

简介

JSON(JavaScript Object Notation, JS对象简谱)是一种轻量级的数据交换格式,用于在不同应用程序之间传输和存储数据。

它以文本形式表示结构化数据,易于理解和编写,同时也易于计算机解析和生成。

JSON 的结构规则

  • 对象:用花括号 {} 包裹,包含一系列键值对,每个键值对之间用逗号 , 分隔。
  • 数组:用方括号 [] 包裹,包含一系列值,每个值之间用逗号 , 分隔。
  • 键值对:键和值之间使用冒号 : 分隔,键必须是字符串,值可以是字符串、数字、布尔值、对象、数组、或null
  • JSON数据的最外层只能是数组或对象
  • JSON中的字符串,必须使用双引号包含
{
    "name": "John",
    "age": 30,
    "is_student": false,
    "address": {
        "city": "New York",
        "zip": "10001"
    },
    "hobbies": ["reading", "swimming", "traveling"]
}

Python 与 JSON 数据类型对应

Python JSON
dict object
list, tuple array
str string
int, float number
True true
Flase false
None null

JSON 序列化与反序列化

JSON 的序列化指的是将 Python 对象转换为 JSON 格式的字符串。

通过序列化,Python 对象可以被编码为符合 JSON 规范的字符串,从而可以在不同的应用程序、平台或语言之间进行数据交换。

  • json.dumps():可以完成序列化的操作。这个函数将 Python 的数据结构转换为 JSON 格式的字符串。

    import json
    
    # 定义一个Python字典
    data = {
        "name": "Alice",
        "age": 30,
        "city": "New York"
    }
    
    # 将Python字典序列化为JSON格式的字符串
    json_str = json.dumps(data)
    print(json_str)
    
  • json.loads():用于将 JSON 格式的字符串解码为 Python 对象。

    import json
    
    json_str = '{"name": "Alice", "age": 30, "city": "New York"}'
    
    # 将JSON字符串解码为Python对象
    Python_obj = json.loads(json_str)
    print(Python_obj)
    

JSON 文件的写入和读取

  • with open(file_path, mode, encoding) as file

    • file_path:要打开的文件路径
    • mode:打开文件的模式,如 r (只读)、w (写入)、a(追加) 等
    • encoding(可选):文件的编码方式,默认为 None,表示使用系统默认编码
  • json.dump():将 Python 对象序列转化为 JSON 格式并写入文件中。

    import json
    
    data = {
        "name": "John",
        "age": 25,
        "city": "New York"
    }
    
    # 将数据写入JSON文件
    with open("data.json", "w") as file:
        json.dump(data, file)
    
  • json.load:从文件中读取 JSON 格式的数据并解码为 Python 对象。

    import json
    
    # 从JSON文件中读取数据
    with open("data.json", "r") as file:
        data = json.load(file)
    
    print(data)