Python学习笔记--对象的序列化和反序列化

import os

print(os.path.dirname(r'C:\Users\AD\Desktop\temp1\大哥哥.wav'))

# json模块有四个比较重要的函数,分别是:
#
# dump - 将Python对象按照JSON格式序列化到文件中
# dumps - 将Python对象处理成JSON格式的字符串
# load - 将文件中的JSON数据反序列化成对象
# loads - 将字符串的内容反序列化成Python对象


# 序列化(serialization)在计算机科学的数据处理中,
# 是指将数据结构或对象状态转换为可以存储或传输的形式,
# 这样在需要的时候能够恢复到原先的状态,而且通过序列化的数据重新获取字节时,
# 可以利用这些字节来产生原始对象的副本(拷贝)。
# 与这个过程相反的动作,即从一系列字节中提取数据结构的操作,就是反序列化(deserialization)

# json.dumps将一个Python数据结构转换为JSON:
import json

test_dict = {
    'a': 1,
    'b': [2, 3],
    'c': ['d', 'ef']
}
data1 = json.dumps(test_dict)
print(data1)  # {"a": 1, "b": [2, 3], "c": ["d", "ef"]}
print(type(data1))  # <class 'str'>

# json.loads将一个JSON编码的字符串转换回一个Python数据结构
data2 = json.loads(data1)
print(data2, type(data2))  # {'a': 1, 'b': [2, 3], 'c': ['d', 'ef']} <class 'dict'>

# json.dump() 和 json.load() 来编码和解码JSON数据,用于处理文件
with open('test.json', 'w') as file:
    json.dump(data2, file)

with open('test.json', 'r') as file:
    data = json.load(file)
    print(type(data))  # <class 'dict'>

 

posted @ 2021-04-27 02:17  菜鸡要加油  阅读(123)  评论(0编辑  收藏  举报