Python中的序列化和反序列化
在Python中,**序列化(Serialization)和反序列化(Deserialization)**可以简单理解为:
-
序列化:将Python对象(如字典、列表等)转换成字节流(如JSON字符串、二进制数据等),以便存储或传输。
- 比如:
{'name': 'Alice'}
→'{"name": "Alice"}'
(JSON格式的字符串)
- 比如:
-
反序列化:将字节流(如JSON字符串)重新转换回Python对象。
- 比如:
'{"name": "Alice"}'
→{'name': 'Alice'}
- 比如:
常用方法(以JSON为例):
import json# 序列化:对象 → 字符串
data = {"name": "Alice"}
json_str = json.dumps(data) # 输出:'{"name": "Alice"}'# 反序列化:字符串 → 对象
restored_data = json.loads(json_str) # 输出:{"name": "Alice"}
为什么需要?
- 存储:将对象保存到文件或数据库(需先转成字节流)。
- 传输:通过网络发送数据(如API接口传递JSON)。
其他工具:
pickle
:序列化为二进制(Python专用,不安全)。yaml
:人类可读的序列化格式。
简单说:序列化是“打包”,反序列化是“解包”。