Python使用pickle实现序列化和反序列化-创新互联
本篇文章给大家分享的是有关Python使用pickle实现序列化和反序列化,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

代码实现
import pickle
class BeSerializing:
def __init__(self):
self.var = "a test string."
def print_var(self):
print(f"self var value is:{self.var}")
class Serializing:
def do_serializing(self):
obj = BeSerializing()
# with的好处是会最后自动释放获取的资源,对于文件就是最后会自己close()
with open("test_pickle.obj", "wb") as file_handler:
# 序列化,将对象写到文件
pickle.dump(obj, file_handler)
class DeSerializing:
def do_serializing(self):
with open("test_pickle.obj", "rb") as file_handler:
# 反序列化,将对象从文件中还原
# 注意,虽然python的变量不需要使用前先定义类型,但使用时是要被格式化成确定类型的
# 所以,如果反序列化类和被序列化类不在同一文件中,那么需要将被序列化类import进来,不然会因找不到被反序列化类而反序列化失败
obj = pickle.load(file_handler)
print(f"obj type: {type(obj)}\n"
f"obj.var value: {obj.var}")
if __name__ == "__main__":
obj_se = Serializing()
obj_se.do_serializing()
obj_de = DeSerializing()
obj_de.do_serializing() 当前标题:Python使用pickle实现序列化和反序列化-创新互联
转载来于:http://www.scyingshan.cn/article/pocih.html


咨询
建站咨询
