Python使用pickle进行序列化和反序列化的示例代码

 更新时间:2020年09月22日 11:41:58   作者:诸子流  
这篇文章主要介绍了Python使用pickle进行序列化和反序列化,帮助大家更好的理解和使用python的pickle库,感兴趣的朋友可以了解下

一、说明

早上看到Python使用pickle进行序列化和反序列化,然后发现面临的一个获取不到返回值的框架,似乎可以通过在框架中先序列化,然后在外部进行反序列化的方法来实现。就研究了一下pickle库的具体使用。

本身也没什么复杂,一方面还是怕忘记,另一方面是自从学Java听到反序化这个词开始就有一种莫明其妙的恐具感总觉得是什么高大上的东西。Java反序列化可参见“Java反序列化漏洞实现”。

二、代码实现

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()

运行结果如下,可以看到成功反序列化并打印出被序列化的对象的变量的值:

参考:

https://docs.python.org/3/library/pickle.html

以上就是Python使用pickle进行序列化和反序列化的示例代码的详细内容,更多关于python 序列化和反序列化的资料请关注脚本之家其它相关文章!

相关文章

  • 在树莓派2或树莓派B+上安装Python和OpenCV的教程

    在树莓派2或树莓派B+上安装Python和OpenCV的教程

    这篇文章主要介绍了在树莓派2或树莓派B+上安装Python和OpenCV的教程,主要基于GTK库,并以Python2.7和OpenCV 2.4.X版本的安装作为示例,需要的朋友可以参考下
    2015-03-03
  • python读写json文件的简单实现

    python读写json文件的简单实现

    这篇文章主要介绍了python读写json文件的简单实现,实例分析了各种读写json的方法和技巧,有兴趣的可以了解一下
    2017-04-04
  • 基于MATLAB和Python实现MFCC特征参数提取

    基于MATLAB和Python实现MFCC特征参数提取

    这篇文章主要介绍了基于MATLAB和Python实现MFCC特征参数提取,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-08-08
  • Python+OpenCV图像处理—— 色彩空间转换

    Python+OpenCV图像处理—— 色彩空间转换

    这篇文章主要介绍了Python+OpenCV如何对图片进行色彩空间转换,帮助大家更好的利用python处理图片,感兴趣的朋友可以了解下下
    2020-10-10
  • pandas的唯一值、值计数以及成员资格的示例

    pandas的唯一值、值计数以及成员资格的示例

    今天小编就为大家分享一篇pandas的唯一值、值计数以及成员资格的示例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-07-07
  • Python3 Post登录并且保存cookie登录其他页面的方法

    Python3 Post登录并且保存cookie登录其他页面的方法

    今天小编就为大家分享一篇Python3 Post登录并且保存cookie登录其他页面的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-12-12
  • 深入分析python中整型不会溢出问题

    深入分析python中整型不会溢出问题

    本文给大家通过实例和原理深入分析了python中整型不会溢出的相关知识点,有兴趣的朋友可以跟着学习下。
    2018-06-06
  • python图像处理模块Pillow的学习详解

    python图像处理模块Pillow的学习详解

    这篇文章主要介绍了python图像处理模块Pillow的学习详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-10-10
  • pytorch中fuse_modules源码解读

    pytorch中fuse_modules源码解读

    这篇文章主要介绍了pytorch中fuse_modules,fuse_known_modules将给定的模块列表mod_list中的一些常见模块进行融合,返回融合后的模块列表,本文通过实例代码详细讲解,需要的朋友可以参考下
    2023-05-05
  • python中的&&及||的实现示例

    python中的&&及||的实现示例

    这篇文章主要介绍了python中的&&及||的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-08-08

最新评论