目录
一、什么是序列化和反序列化
- 序列化是指将数据转化为可存储或传输的格式,(如,字节流、json、xml等)
- 反序列化就是将序列化的数据恢复为python对象的过程
二、json模块
1.dump\dumps
import json
data = {'name': 'Bob', 'age': 30}
serialized = json.dumps(data) # 序列化为 JSON 字符串
with open('data.json', 'w') as f:
json.dump(data, f) # 序列化并保存到文件
2.load\loads
import json
with open('data.json', 'r') as f:
deserialized = json.load(f) # 从文件反序列化
data = json.loads(serialized) # 从字符串反序列化
三、pickle模块
1.dump \dumps
import pickle
data = {'name': 'Alice', 'age': 25}
serialized = pickle.dumps(data) # 序列化为字节
with open('data.pkl', 'wb') as f:
pickle.dump(data, f) # 序列化并保存到文件
2.load\loads
import pickle
with open('data.pkl', 'rb') as f:
deserialized = pickle.load(f) # 从文件反序列化
data = pickle.loads(serialized) # 从字节反序列化
四、marshal
从字节数据恢复为Python对象
import marshal
data = marshal.loads(serialized)
五、pickle、json、marshal区别
1.pickle是Python 独有的,且只支持转化为二进制文件,不易读取
2.json是跨系统的,跨语言兼容,支持多种格式存储或输出,一般是字典、列表、字符串、数字等
3.json支持前后端通信
4.需要高性能序列化是考虑marshal

1993

被折叠的 条评论
为什么被折叠?



