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


Posted in Python onSeptember 22, 2020

一、说明

早上看到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()

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

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

参考:

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

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

Python 相关文章推荐
在Python下使用Txt2Html实现网页过滤代理的教程
Apr 11 Python
简单理解Python中基于生成器的状态机
Apr 13 Python
python实现教务管理系统
Mar 12 Python
详解Python3 中hasattr()、getattr()、setattr()、delattr()函数及示例代码数
Apr 18 Python
Django 连接sql server数据库的方法
Jun 30 Python
对Python 3.5拼接列表的新语法详解
Nov 08 Python
Python实现的字典排序操作示例【按键名key与键值value排序】
Dec 21 Python
python实现移位加密和解密
Mar 22 Python
python 字符串常用函数详解
Sep 11 Python
python梯度下降算法的实现
Feb 24 Python
vscode调试django项目的方法
Aug 06 Python
还在手动盖楼抽奖?教你用Python实现自动评论盖楼抽奖(一)
Jun 07 Python
Python如何获取文件路径/目录
Sep 22 #Python
JupyterNotebook 输出窗口的显示效果调整实现
Sep 22 #Python
python 实现压缩和解压缩的示例
Sep 22 #Python
python 无损批量压缩图片(支持保留图片信息)的示例
Sep 22 #Python
Pytho爬虫中Requests设置请求头Headers的方法
Sep 22 #Python
python 线程的五个状态
Sep 22 #Python
python 如何实现遗传算法
Sep 22 #Python
You might like
PHP下获取上个月、下个月、本月的日期(strtotime,date)
2014/02/02 PHP
PHP中JSON的应用技巧
2015/10/10 PHP
深入浅出讲解:php的socket通信原理
2016/12/03 PHP
php支付宝APP支付功能
2020/07/29 PHP
Javascript 匿名函数及其代码模式原理
2010/03/19 Javascript
Tinymce+jQuery.Validation使用产生的BUG
2010/03/29 Javascript
基于jquery的页面划词搜索JS
2010/09/14 Javascript
实现点击列表弹出列表索引的两种方式
2013/03/08 Javascript
javaScript array(数组)使用字符串作为数组下标的方法
2013/11/19 Javascript
JSON中双引号的轮回使用过程中一定要小心
2014/03/05 Javascript
JS中FRAME的操作问题实例分析
2014/10/21 Javascript
js实现的捐赠管理完整实例
2015/01/20 Javascript
javascirpt实现2个iframe之间传值的方法
2016/06/30 Javascript
详谈Ajax请求中的async:false/true的作用(ajax 在外部调用问题)
2017/02/10 Javascript
footer定位页面底部(代码分享)
2017/03/07 Javascript
angular2+node.js express打包部署的实战
2017/07/27 Javascript
AngualrJs清除定时器遇到的坑
2017/10/13 Javascript
ActiveX控件的使用-js实现打印超市小票功能代码详解
2017/11/22 Javascript
js实现淘宝首页的banner栏效果
2019/11/26 Javascript
vue新建项目并配置标准路由过程解析
2019/12/09 Javascript
Vue 实现简易多行滚动"弹幕"效果
2020/01/02 Javascript
[47:52]完美世界DOTA2联赛PWL S2 PXG vs InkIce 第二场 11.26
2020/11/30 DOTA
tensorflow识别自己手写数字
2018/03/14 Python
python实现键盘输入的实操方法
2019/07/16 Python
基于python实现自动化办公学习笔记(CSV、word、Excel、PPT)
2019/08/06 Python
在Python 的线程中运行协程的方法
2020/02/24 Python
Foot Locker意大利官网:全球领先的运动鞋和服装零售商
2017/05/30 全球购物
微观物理专业自荐信
2014/01/26 职场文书
道路建设实施方案
2014/03/18 职场文书
求职个人评价范文
2014/04/09 职场文书
金融事务专业求职信
2014/04/25 职场文书
大气污染防治方案
2014/05/19 职场文书
群众路线个人整改措施
2014/10/24 职场文书
护士2015年终工作总结
2015/04/29 职场文书
幼儿园万圣节活动总结
2015/05/05 职场文书
MySQL慢查询的坑
2021/04/28 MySQL