序列化:将对象转换成二进制便于存储及网路传输
反序列化:解析序列化文件 ,反序列化成对象
python实现序列化和反序列化用到了Pickle模块:
pickle.dump(object,file) :将序列化后的对象以二进制形式写入文件file中,进行保存,不能直接预览
pickle.load(file:将序列化的对象从文件file中读取出来(以二进制的方式操作)
示例如下:
pickle.dumps(obj): 不需要写入文件中,而是直接返回一个字节流
pickle.loads(file):直接读取字节流信息,而非从文件中读取
示例如下:
完整代码:
import pickle
class Testdata:
test = [1, 2, 3]
def test_dupm_file(self):
#将test对象以二进制的方式序列化到文件中,会生产一个test.pickle的文件
with open("test.pickle","wb") as file:
pickle.dump(self.test,file)
#解析序列化文件,反序列化成对象(以二进制的方式读取出来)
with open("test.pickle","rb") as file:
print(pickle.load(file))
def test_dump_string(self):
data={"name":"lxj","age":18}
#将data对象直接序列化为字节流,不需要写入文件
du=pickle.dumps(data)
print(du)
#直接解析字节流反序列化为对象
load=pickle.loads(du)
print(load)