Python中的pickle模块解析

 更新时间:2023年09月22日 08:50:00   作者:XWenXiang  
这篇文章主要介绍了Python中的pickle模块解析,pickle 模块和 json 模块很像,都有序列化的功能,不过 pickle 模块更加局限一些只能对 python 使用,它可以对一个 python 对象结构的二进制序列化和反序列化,需要的朋友可以参考下

pickle模块简介

pickle 模块和 json 模块很像,都有序列化的功能,不过 pickle 模块更加局限一些只能对 python 使用,它可以对一个 python 对象结构的 二进制 序列化和反序列化。

序列化是将 Python 对象及其所拥有的层次结构转化为一个字节流的过程。反序列化则反之。

pickle模块语法

pickle.dumps

将 python 对象作为 bytes 类型直接返回

import pickle
		class MyCls(object):
		    pass
		x = pickle.dumps(MyCls)
		print(x)

打印结果

b'\x80\x04\x95\x16\x00\x00\x00\x00\x00\x00\x00\x8c\x08__main__\x94\x8c\x05MyCls\x94\x93\x94.'

示例中将一个类的结构序列化成了字节串

pickle.dump

和 json.dump 一样也是写入文件的

import pickle
		class MyCls(object):
		    pass
		with open('obj', 'wb')as f:
		    pickle.dump(MyCls, f)

pickle.loads

将字节流返回成一个对象的原本的结构形式

import pickle
		class MyCls(object):
		    name = 'x'
		x = pickle.dumps(MyCls)
		# print(x)
		y = pickle.loads(x)
		print(y)
		print(y.name)

打印结果

<class '__main__.MyCls'>
x

返回出来的是原本对象的结构,所以原本使用的方法都不变

pickle.load

将文件中的字节串反序列化

import pickle
		class MyCls(object):
		    name = 'x'
		with open('obj', 'wb')as e:
		    pickle.dump(MyCls, e)
		with open('obj', 'rb')as f:
		    x = pickle.load(f)
		print(x.name)

到此这篇关于Python中的pickle模块解析的文章就介绍到这了,更多相关pickle模块内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python在画图时使用特殊符号的方法总结

    Python在画图时使用特殊符号的方法总结

    在制作图表时,如果遇到需要利用特殊符号进行表示时该怎么办呢?不用慌,这篇文章为大家总结了python画图中使用各种特殊符号的方式,需要的可以参考一下
    2022-04-04
  • pyecharts的Tab和Legend布局详情

    pyecharts的Tab和Legend布局详情

    这篇文章主要介绍了pyecharts的Tab和Legend布局,pyecharts是百度开源的一款第三方绘图模块,结合的python语言的简易性和Echarts的强大绘图特性,可以用python对其调用,输出交互性好,精美乖巧且符合审美的图表,下文我们就来学习pyecharts的Tab和Legend烦人布局布局
    2022-03-03
  • 实例详解Python装饰器与闭包

    实例详解Python装饰器与闭包

    闭包是Python装饰器的基础。要理解闭包,先要了解Python中的变量作用域规则。本文主要给大家介绍Python装饰器与闭包的相关知识,需要的朋友可以参考下
    2019-07-07
  • Django Paginator分页器的使用示例

    Django Paginator分页器的使用示例

    django内置的分页器组件,能够帮我们实现对查询的数据进行自动分页,并返回分页对象,本文讲解分页器的用法
    2021-06-06
  • Python Flask应用中的主动垃圾回收机制详解

    Python Flask应用中的主动垃圾回收机制详解

    在 Python Web 开发中,内存管理是一个重要但常被忽视的话题,作为一款轻量级的 Web 框架,Flask 虽然简洁高效,但在长时间运行或高并发场景下,内存问题可能会逐渐显现,所以本文给大家介绍了Python Flask应用中的主动垃圾回收机制,需要的朋友可以参考下
    2025-07-07
  • python绘制双Y轴折线图以及单Y轴双变量柱状图的实例

    python绘制双Y轴折线图以及单Y轴双变量柱状图的实例

    今天小编就为大家分享一篇python绘制双Y轴折线图以及单Y轴双变量柱状图的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-07-07
  • Python干货:分享Python绘制六种可视化图表

    Python干货:分享Python绘制六种可视化图表

    可视化图表有很多种,这篇文章主要介绍了Python绘制六种可视化图表详解的方法,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-08-08
  • 解读Python中的frame是什么

    解读Python中的frame是什么

    这篇文章主要介绍了解读Python中的frame是什么,关于frame使用讲解,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-11-11
  • Python中selenium实现文件上传所有方法整理总结

    Python中selenium实现文件上传所有方法整理总结

    本篇文章主要介绍了Python中selenium实现文件上传所有方法整理总结,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。
    2017-04-04
  • Django重定向redirect的具有使用

    Django重定向redirect的具有使用

    在Django中,redirect是一个用于进行重定向的函数,本文主要介绍了Django重定向redirect的具有使用,具有一定的参考价值,感兴趣的可以了解一下
    2023-11-11

最新评论