Python 中,一切皆对象,对象本质上就是一个“存储数据的内存块”。有时候,我们需要将“内存块的数据”保存到硬盘上,或者通过网络传输到其他的计算机上。这时候,就需要“对象的序列化和反序列化”。对象的序列化机制广泛的应用在分布式、并行系统上。
序列化指的是:将对象转化成“串行化”数据形式,存储到硬盘或通过网络传输到其他地方。反序列化是指相反的过程,将读取到的“串行化数据”转化成对象。
我们可以使用pickle 模块中的函数,实现序列化和反序列操作。
序列化我们使用:
pickle.dump(obj, file) obj 就是要被序列化的对象,file 指的是存储的文件
pickle.load(file) 从file 读取数据,反序列化成对象
【操作】将对象序列化到文件中 & 将获得的数据反序列化成对象
import pickle
# 【操作】将对象序列化到文件中
with open(r"data.dat","wb") as f:
a1 = "琪琪"
a2 = 234
a3 = [20,30,40]
pickle.dump(a1,f)
pickle.dump(a2, f)
pickle.dump(a3, f)
# 【操作】将获得的数据反序列化成对象
with open(r"data.dat","rb") as f:
a1 = pickle.load(f)
a2 = pickle.load(f)
a3 = pickle.load(f)
print(a1) # 琪琪
print(a2) # 234
print(a3) # [20, 30, 40]