使用pickle实现序列化和反序列化

使用 pickle 序列化

Python中,一切皆对象,对象本质上就是一个"存储数据的内存块"。有时候,我们需要将"内存块的数据"保存到硬盘上,或者通
过网络传输到其他的计算机上。
这时候,就 需要"对象的序列化和反序列化"。 对象的序列化机制广泛的应用在分布式、并行系统上。
序列化指的是:将对象转化成"串行化"数据形式,存储到硬盘或通过网络传输到其他地方。
反序列化是指相反的过程,将读取到的"串行化数据"转化成对象。

使用 pickle 模块中的函数,实现序列化和反序列操作:
pickle.dump(obj, file)    obj是要被序列化的对象,file指的是存储的文件对象 
pickle.load(file)         从file读取数据,反序列化成对象




import pickle
a1='hudechao'
a2=123456
a3=[10,20,30,40]
with open(r'data.dat','wb')as f:
    pickle.dump(a1,f)  #序列化对象a1生成二进制数据写入到文件对象f中
    pickle.dump(a2,f)
    pickle.dump(a3,f)

with open(r'data.dat','rb') as f:
    b1=pickle.load(f)  #反序列化生成新的对象
    b2=pickle.load(f)
    b3=pickle.load(f)

    print(b1)       #结果:hudechao
    print(b2)       #结果:123456
    print(b3)       #结果:[10, 20, 30, 40]

    print(id(a1))   #结果:1618386176240
    print(id(b1))   #结果:1618386236080,a1和b1是两个不同的对象id

你可能感兴趣的:(使用pickle实现序列化和反序列化)