Python3 pickle模块的使用详解
创始人
2025-05-28 02:57:55
0

pickle模块特点

1、只能在python中使用,只支持python的基本数据类型。

2、可以处理复杂的序列化语法。(例如自定义的类的方法,游戏的存档等)

3、序列化的时候,只是序列化了整个序列对象,而不是内存地址。

pickle: 用于python特有的类型和python的数据类型间进行转换,pickle提供四个功能:dumps,dump,loads,load

pickle可以存储什么类型的数据呢?

所有python支持的原生类型:布尔值,整数,浮点数,复数,字符串,字节,None。

由任何原生类型组成的列表,元组,字典和集合。

函数,类,类的实例

pickle模块中常用的方法

    1. pickle.dump(obj, file, protocol=None,)

    必填参数obj表示将要封装的对象

    必填参数file表示obj要写入的文件对象,file必须以二进制可写模式打开,即“wb”

    可选参数protocol表示告知pickler使用的协议,支持的协议有0,1,2,3,默认的协议是添加在Python 3中的协议3。

    2. pickle.load(file,*,fix_imports=True, encoding="ASCII", errors="strict")

    必填参数file必须以二进制可读模式打开,即“rb”,其他都为可选参数

    3. pickle.dumps(obj):以字节对象形式返回封装的对象,不需要写入文件中

    4. pickle.loads(bytes_object): 从字节对象中读取被封装的对象,并返回

pickle模块三种异常类型

    1. PickleError:封装和拆封时出现的异常类,继承自Exception

    2. PicklingError: 遇到不可封装的对象时出现的异常,继承自PickleError

    3. UnPicklingError: 拆封对象过程中出现的异常,继承自PickleError

代码实例

dumps功能

dumps 将数据通过特殊的形式转换为只有python语言认识的字符串

import pickle
data = ['aa', 'bb', 'cc']  
# dumps 将数据通过特殊的形式转换为只有python语言认识的字符串
p_str = pickle.dumps(data)
print(p_str)

结果:      

b'\x80\x03]q\x00(X\x02\x00\x00\x00aaq\x01X\x02\x00\x00\x00bbq\x02X\x02\x00\x00\x00ccq\x03e.

 

loads功能

loads  将pickle数据转换为python的数据结构

mes = pickle.loads(p_str)
print(mes)

结果:

['aa', 'bb', 'cc']

 

 

相关内容

热门资讯

docker 容器 的两个概率... 问:你讲讲一下docker 的镜像,容器,它们之间的关系&...
成都江西旅游攻略:游玩痛点与贴... 暴雨突袭青城山(Sudden Storm on Qingcheng Mountain)七月的青城山雾...
2023还有人不知道kuber... 文章目录Kubernetes(K8s)一、Openstack&VM1、**认识虚拟化****1.1*...
血泪经验总结,财务会计人员面试... 为什么每次面试都会很慌?一紧张就大脑一片空白,前言不搭后语,...
vue3使用jodit富文本编... 目录常用配置设置中文字体设置CDN的引用图片上传对编辑器中生成的元素添加默认属性组件封装 本文使用时...
CCNP300-410学习笔记... 51、Refer to the exhibit. Network operations cannot...
JS从0到1——653. 钞票 文章目录QuestionIdeasCode Question 在这个问题中,你需要读取...
统一登录验证统一返回格式统一异... 统一登录验证&统一返回格式&统一异常处理的实现 一、用户登录权限效验1.1 最初的用户登录验证1.2...
美颜sdk基础技术讲解、代码分... 目前,短视频、直播一类app非常热门,美颜sdk的应用场景也愈发广泛。所...
16张刚刚最新早安快乐新图,问... 1、人生最快乐的事,不是初聚之欢,而是久处不散。无论认识多久,都能由衷地说一句:今生有缘,感恩遇见。...
git cherry-pick... git cherry-pick1 cherry-pick 的作用2 使用场景3 使用方法 在实际开发...
20年程序员生涯,读了200多... 不知不觉已经又走过了20个年头了,今年已经44了,虽然我已经退休在家&#...
Seata架构篇 - SAGA... SAGA模式 Saga 模式是 Seata 提供的长事务解决方案,在 Saga 模式中...
【springboot】异常处... 8、异常处理 1、错误处理 1、默认规则 默认情况下,Spring Boot提供/e...
Python自动化抖音自动刷视... 环境准备 Python3.5以上Appium Server服务器Android SDK,...
libcurl库简介 一、libcurl简介libcurl是一个跨平台的网络协议库,支持http, http...
数据库存储与索引技术(三)LS... 我们在前文介绍过,多款分布式数据库都使用了LSM树作为底层的存储引擎,其...
[图神经网络]图结构和图的表示 一、图结构         图:描述关联数据的通用语言。在图中,节点之间...
三元:一泓温泉 “泡” 出康养... 日前,上海市总工会最新推出135家“2025年上海提升职工生活品质休假体验点”,三钢万寿岩学院职工疗...
PTA:C课程设计(3) 山东大学(威海)2022级大一下C习题集(3)...