OS模块和JSON模块

发布时间 2023-12-20 21:52:52作者: -半城烟雨

OS模块和JSON模块

【一】OS模块

【二】JSON模块

【1】序列化与反序列化

序列化和反序列化是计算机科学中数据处理中的两个过程,用于将数据从一种格式转换为另一种格式。这两个过程通常称为编码和解码。

序列化是将数据结构或对象转换为字节序列的过程,使得数据可以以一种易于传输和存储的方式进行传输或存储。序列化后的数据通常用于在网络上传输或存储数据,也可以用于在程序运行时进行持久化存储。

反序列化是将字节序列转换回数据结构或对象的过程,使得原始数据可以被重新使用。反序列化通常用于将数据从磁盘或其他存储介质中恢复到内存中,以便进一步处理或使用。

Python 提供了一种内置的序列化和反序列化格式,称为 JSON(JavaScript Object Notation)。JSON 是一种轻量级的数据交换格式,可以用于传输和存储数据,并且可以被大多数编程语言支持。Python 中的 json 模块提供了用于序列化和反序列化的函数,例如 json.dumps()json.loads()

序列化和反序列化的另一个常见格式是pickle,它是一种 Python 专用的二进制序列化格式。pickle 可以将 Python 对象序列化为字节序列,并可以将字节序列反序列化为 Python 对象。pickle 是一种非常灵活的序列化格式,可以处理许多类型的对象,例如类实例、函数、数据结构等。但是,pickle 仅适用于 Python,并且不适用于跨平台的数据交换。

【2】序列化与反序列化举例

import json

# 定义一个字典对象
data = {
    "name": "张三",
    "age": 30,
    "city": "北京"
}

# 将字典对象序列化为 JSON 字符串
json_data = json.dumps(data)
print("JSON 数据:", json_data)

# 将 JSON 字符串反序列化为 Python 字典对象
dict_data = json.loads(json_data)
print("反序列化后的字典对象:", dict_data)
输出结果:
JSON 数据: {"name": "张三", "age": 30, "city": "北京"}
反序列化后的字典对象: {'name': '张三', 'age': 30, 'city': '北京'}

【3】JSON保存数据

def save_data(path):
    with open(path,'w',encoding='utf-8') as fp:
        json.dump(path,fp,ensure_ascii=False)
#ensure_ascii=True,这意味着非ASCII字符将被编码为Unicode字符串
#ensure_ascii=False意味着在JSON字符串中包含非ASCII字符

【4】JSON读取数据

def read_data(path):
    with open(path,'r',encoding='utf-8') as fp:
        data=json.load(fp)
    return data