序列化原理
00 min
2024-4-23

为什么要序列化

内存中字典、列表、集合以及各种对象,如何保存到一个文件中?
如果是自己定义的类的实例,如何保存到一个文件中?
如何从文件中读取数据,并让它们在内存中再次恢复成自己对应的类的实例?
 
要设计一套协议,按照某种规则,把内存中数据保存到文件中。文件是一个字节序列,所以必须把数据转化为字节序列,输出到文件。这就是序列化
反之,从文件的字节序列恢复到内存并且还是原来的类型,这就是反序列化

定义

  • serialization 序列化
    • 将内存中对象存储下来,把它变成一个个字节。→ 二进制
  • deserialization 反序列化
    • 将文件的一个个字节恢复成内存中对象. ← 二进制
序列化保存到文件就是持久化。可以将数据序列化后持久化,或者网络运输;也可以将从文件中或者网络接收到的字节序列反序列化。
Python提供了pickle库。

pickle库

Python中的序列化和反序列化模块。
函数
说明
dumps
对象序列化为bytes
dump
对象序列化到文件对象,就是存入文件
loads
从bytes对象反序列化
load
对象反序列化,从文件读取数据