Pickle模块中的dump()和load()方法简介
作者:云隐雾匿 发布时间:2023-03-21 04:18:06
标签:Pickle,dump(),load()
一、简介
Pickle模块实现了基本的数据序列化与反序列化操作。通过序列化操作,我们可以将程序中运行的对象信息转化为字节流保存到文件中去,永久存储在磁盘上。通过反序列化操作,我们可以将文件中字节流数据重新解析为一个python对象。
注:pickle序列化后的字节流数据可读性差,人一般无法识别。
1.1 为什么要对数据进行序列化操作?
1.不需要在跑代码时重新去计算得到数据,事先进行序列化操作保存数据可以节省计算机资源;
2.pkl文件能够更好的被内存调用,不需要经过数据格式的转换,因此提高了效率;而假如保存为其他格式(如txt、csv文件),那么数据读写速度都不如序列化后的数据。
3.Pickle可以保存多个对象。实验中,同一数据集下需要保存的内容不止一种,通过pickle可以全部将其保存到一个.pkl文件。
二、pickle.dump(obj, file, protocol)
obj: 要进行序列化的对象,这里将对象obj保存到文件file中去;
file: file表示保存到的类文件对象,file必须有write()接口,file可以是一个以’w’打开的文件或者是一个StringIO对象,也可以是任何可以实现write()接口的对象;
protocol: 序列化模式,默认是 0(ASCII协议,表示以文本的形式进行序列化),protocol的值还可以是1和2(1和2表示以二进制的形式进行序列化。其中,1是老式的二进制协议;2是新二进制协议)
import pickle
# 创建一个字典对象
data = {'a':[1,2,3],'b':'Hello'}
# 以二进制写入方式打开文件,得到文件对象
fw = open('./Mydata.pkl','wb')
# 将字典数据存储为一个pkl文件
pickle.dump(data, fw)
# 关闭文件
pickle.close()
序列化后的数据形式:
三、pickle.load(file)
file: 表示上一步序列化之后的文件,这里进行反序列化操作。
import pickle
# 以二进制读入方式打开文件,得到文件对象
fw = open(r'C:\python数据分析\python基础\testdata.pkl','rb')
# 将字节流数据反序列化为一个字典对象
data = pickle.load(pic2)
print(data)
打印出来的数据:
来源:https://blog.csdn.net/weixin_45684362/article/details/129412192


猜你喜欢
- 还有种片面的观点认为,做网站设计与平面差不多,比如老罗发布的这则招聘中提到:年薪十万招擅长做下列网站设计风格的平面设计师一名。在专业角度,网
- Inserted 表中的行是触发器表中新行的副本。 语法 返回所有列 INSERT INTO [tableName] ([columnNam
- 本文整理了一部分我们平时在项目中经常遇到的关于go语言JSON数据与结构体之间相互转换的问题及解决办法。基本的序列化首先我们来看一下Go语言
- 描述cmp() 方法用于比较两个列表的元素。语法cmp()方法语法:cmp(list1, list2)参数list1 -- 比较的列表。li
- 自定义查询对象 - objects①声明一个类EntryManager,继承自models.Manager,并添加自定义函数②使用创建的自定
- 共4个页面:form.asp; chk.asp; num.asp; count.asp,得到一个随即数字。加密解密后成成XBM图片,利用 s
- 我们都知道python的版本不同,在使用的时候就有所区别。鉴于我们推荐小伙伴们选择python3版本,所以这方面的区别了解的不是很多。就拿_
- 异常描述有时我们的Excel有一个调整过自定义格式的日期字段:当我们用pandas读取时却是这样的效果:不管如何指定参数都无效。出现原因没有
- 前言:NoxfileNox 默认在一个名为noxfile.py的文件中查找配置。在运行 nox 时,你可以使用 --noxfile参数指定其
- 一、变量和表达式>>> 1 + 1 &n
- 项目中涉及到一些加密解密的需求,了解并尝试了几种加密解密方法,以下:方法一:md5加密注意:md5的特性就是只能加密,所以用md5加密的时候
- 因工作需要研究了支付宝即时到帐接口,并成功应用到网站上,把过程拿出来分享。即时到帐只是支付宝众多商家服务中的一个,表示客户付款,客户用支付宝
- 【基本介绍】【格式】:pivot(聚合函数 for 需要转为列的字段名 in(需要转为列的字段值))【说明】:实现将指定字段的字段值转换为列
- 有史以来最牛逼的绘图工具,没有之一plotly是现代平台的敏捷商业智能和数据科学库,它作为一款开源的绘图库,可以应用于Python、R、MA
- 具体代码如下所示:<!DOCTYPE html><html> <head> &
- 删除表数据操作清空所有表记录:TRUNCATE TABLE your_table_name;或者批量删除满足条件的表记录:BEGIN &nb
- 今天因为做一个效果的时候需要CSS的定位来实现,于是我就根据自己原来对CSS的了解,用absolute和relative摆弄了好一阵子,总是
- 1 索引索引概念索引是一种特殊的文件,包含着对数据表里所有记录的引用指针。可以对表中的一列或多列创建索引,并指定索引的类型,各类索引有各自的
- 目录前言typeof是否能正确判断类型?instanceof是否能正确判断类型?Object.prototype.toString.call
- 1、引言选择排序里面主要讲了三个排序,分别是简单选择排序、树形选择排序、堆排序。今天这篇文章主要讲树形选择排序,树形选择排序也被称为锦标赛排