Python中的pickle模块
链客,专为开发者而生,有问必答!
此文章来自区块链技术社区,未经允许拒绝转载。
Pickle模块的作用
Pickle模块用于将python对象序列化为字节流,可存储在文件或数据库中,也可同通过网络进行传输。使用反序列化(Unpickle)可以将生成的字节流转换回python对象。“Pickling”是将Python对象层次结构转换为字节流的过程,“unpickling”是反向操作,从而将字节流(来自二进制文件或类似字节的对象)转换回对象层次结构。酸洗(或去除)也可称为“序列化”,“编组”,不要将其与marshal模块混淆或“扁平化”; 但是,为了避免混淆,这里使用的术语是“酸洗”和“破坏”。
什么叫序列化?
把对象在内存中的结构转换成便于存储或传输的二进制或文本格式,而且以后可以在同一个系统或不同的系统中重建对象的副本。pickle模块能把任何Python对象序列化成二进制格式。
函数的运用
Pickle模块中dump()函数与load()函数的运用
pickle模块提供以下常量:
pickle.HIGHEST_PROTOCOL
整数,可用的最高协议版本。该值可以作为协议值传递给函数dump()和dumps()以及pickler构造函数。
pickle.DEFAULT_PROTOCOL
一个整数,用于酸洗的默认协议版本。可能小于最高协议。目前默认的协议是3,这是为python 3设计的新协议。
pickle模块提供以下功能,使酸洗过程更加方便:
pickle.dump(obj,file,protocol = None,*,fix_imports = True )
将obj的pickle d表示写入打开的文件对象文件。这相当于。 Pickler(file, protocol).dump(obj)
可选的协议参数,一个整数,告诉pickler使用给定的协议; 支持的协议是0到HIGHEST_PROTOCOL。如果未指定,则默认为DEFAULT_PROTOCOL。如果指定了负数,HIGHEST_PROTOCOL则选择。
文件参数必须有一个接受单字节参数的write()方法。因此,它可以是一个为二进制写入而打开的磁盘上文件、一个IO.Bytesio实例或满足此接口的任何其他自定义对象。
如果fix_导入为真,且协议小于3,pickle将尝试将新的python 3名称映射到python 2中使用的旧模块名称,以便pickle数据流可以用python 2读取。
pickle.dumps(obj,protocol =None,*,fix_imports = True )
将对象的pickled表示作为bytes对象返回,而不是将其写入文件。
arguments协议和fix_导入的含义与dump()中的含义相同。
pickle.load(file,*,fix_imports = True,encoding =“ASCII”,errors =“strict” )
从打开的文件对象文件中读取pickled对象表示,并返回其中指定的重新构建的对象层次结构。这相当于unpickler(file.load()。
自动检测pickle的协议版本,因此不需要协议参数。超过pickled对象表示形式的字节将被忽略。
参数文件必须有两个方法,一个采用整数参数的read()方法和一个不需要参数的readline()方法。两种方法都应返回字节。因此,文件可以是为二进制读取而打开的磁盘上文件、IO.Bytesio对象或满足此接口的任何其他自定义对象。
可选关键字参数包括fix_导入、编码和错误,这些参数用于控制由python 2生成的pickle流的兼容性支持。如果fix_imports为true,pickle将尝试将旧的python 2名称映射到python 3中使用的新名称。编码和错误告诉pickle如何解码由python 2处理的8位字符串实例;它们分别默认为’ascii’和’strict’。编码可以是“字节”,以将这些8位字符串实例读取为字节对象。需要使用encoding='latin1’来取消拾取由python 2处理的numpy数组和date time、日期和时间实例。
pickle.loads(bytes_object,*,fix_imports = True,encoding =“ASCII”,errors =“strict” )
从bytes对象读取pickled对象层次结构,并返回其中指定的重新构建的对象层次结构。
自动检测pickle的协议版本,因此不需要协议参数。超过pickled对象表示形式的字节将被忽略。
可选关键字参数包括fix_导入、编码和错误,这些参数用于控制由python 2生成的pickle流的兼容性支持。如果fix_imports为true,pickle将尝试将旧的python 2名称映射到python 3中使用的新名称。编码和错误告诉pickle如何解码由python 2处理的8位字符串实例;它们分别默认为’ascii’和’strict’。编码可以是“字节”,以将这些8位字符串实例读取为字节对象。需要使用encoding='latin1’来取消拾取由python 2处理的numpy数组和date time、日期和时间实例。
相关文章:

pytorch python区别_pytorch源码解析:Python层 pytorchmodule源码
尝试使用了pytorch,相比其他深度学习框架,pytorch显得简洁易懂。花时间读了部分源码,主要结合简单例子带着问题阅读,不涉及源码中C拓展库的实现。一个简单例子实现单层softmax二分类,输入特征维度为4,输出为…

在vue中使用babel-polyfill
在 Vue.js项目中使用Vuex,Vuex 依赖 Promise,所以如果你的浏览器没有实现 Promise (比如 IE),那么就需要使用一个 polyfill 的库 我们可以通过babel-profill转译 1、安装 npm install --save-dev babel-polyfill 2、在main.js中引入 import b…

CoinMarketCap计划于11月发布新的流动性排名系统
链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 去中心化金融(DeFi)引领未来金融发展趋势,InvestDigital联合传统金融机构,依托现有数字货币金融业务…

cookie和session的代码实现
cookie和session的代码实现 1、设置cookie 今天笔试题考的是cookie的设置,我竟然选了request也可以设置cookie,我的天呀。 我们来看如何在response设置吧 public void service(HttpServletRequest req,HttpServletResponse resp) throws ServletExceptio…

idea 批量修改同一列_学会这个,1秒就可以批量处理文件
【问题1】根据公司名称,批量创建文件夹拿到老板给到的这个任务后,没关系我很有耐心,不就是右击新建文件夹重命名保存吗,然后加班点鼠标到天荒地老,终于完成了。结果老板说有些公司名有误要改正过来,还有几百…

动态规划和分治法的区别
链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 动态规划也是一种分治思想(比如其状态转移方程就是一种分治),但与分治算法不同的是,分治算法是把原问…

关于链式前向星。
一些代码 理解 #include<bits/stdc.h> using namespace std; //优先队列优化的链式前向星 const int maxn1000; const int INF0x3fffffff; struct Edge{int from, to, dist;Edge(int u, int v, int d):from(u),to(v),dist(d){} }; struct HeapNode{int u, d;HeapNode(int…

Ceph分层存储分析
最近弄Ceph集群考虑要不要加入分层存储 因此花了点时间研究了下 1,首先肯定要弄清Ceph分层存储的结构 ,结构图大概就是下图所示 缓存层(A cache tier)为Ceph客户端提供更好的I/O性能,而数据存储在存储层(a backing storage tier)。用相对快速…

jemeter多场景混合案例_Redis 混合存储最佳实践指南
Redis 混合存储实例是阿里云自主研发的兼容Redis协议和特性的云数据库产品,混合存储实例突破 Redis 数据必须全部存储到内存的限制,使用磁盘存储全量数据,并将热数据缓存到内存,实现访问性能与存储成本的完美平衡。架构及特性命令…

交易所频频被盗,你该如何保护自己的数字资产?
链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 5月8日凌晨,数字货币交易所币安发生被盗事件,黑客从币安热钱包盗走大约 7000 个比特币。币安官方公告称,这是一次…

gitlab搭建
一、安装源和依赖包 #增epel源,如果你是i686系统,请把x86_64修改下。cd /usr/local/src wget -O /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6 https://www.fedoraproject.org/static/0608B895.txt rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6 rpm -Uvh http://dl.f…

kafka源码分析(二)Metadata的数据结构与读取、更新策略
一、基本思路 异步发送的基本思路就是:send的时候,KafkaProducer把消息放到本地的消息队列RecordAccumulator,然后一个后台线程Sender不断循环,把消息发给Kafka集群。 要实现这个,还得有一个前提条件:就是K…

python实现简单的http服务器_Python实现简单HTTP服务器(二)
#coding:utf-8importsocketimportreimportsysfrom multiprocessing importProcessclassHTTPServer(object):def __init__(self, application):"""application:指的是框架的app"""self.server_socketsocket.socket(socket.AF_INET, so…

机器学习中的模型评价、模型选择及算法选择
链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 正确使用模型评估、模型选择和算法选择技术无论是对机器学习学术研究还是工业场景应用都至关重要。本文将对这三个任务的相关技术进行回顾ÿ…

Apache 流框架 Flink,Spark Streaming,Storm对比分析(一)
https://bigdata.163.com/product/article/5 Apache 流框架 Flink,Spark Streaming,Storm对比分析(一)转载于:https://www.cnblogs.com/WCFGROUP/p/9075745.html

梯度下降算法_神经网络梯度下降算法
神经网络梯度下降算法2018, SEPT 13梯度下降(Gradient Descent) 是神经网络比较重要的部分,因为我们通常利用梯度来利用Cost function(成本函数) 进行backpropagation(反向传播) 不断地iteration࿰…

微擎删除分类无法删除解决-select in效率低解决办法
今天朋友微擎后台微网站里的分类要删除,可是怎么删除也不能删除,同样的系统另一套却可以迅速删除。 后来查询到是查询语句的问题,朋友的平台用户量太大,数据太大,用了以下语句,造成效率太低: SE…

EOS技术及生态系统介绍
链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 嘉宾介绍 哈胜,现任梦起文化传播有限公司技术总监,西北地区区块链技术发起第一人;一直在致力于将区块链技术推广…

svn 提交信息模板
版本:1.0作者:张三描述:修改了xxx转载于:https://www.cnblogs.com/ithfm/p/9075748.html

pta函数统计素数并求和_黎曼的zeta函数
9月24日阿提亚爵士(Sir Atiyah)直播“证明”黎曼猜想(Riemann hypothesis)在普通人中引发了一轮数学热潮,网络上一时间涌现了很多数学八卦文章。许多人在论及该命题重要性时都指出,ζ函数的非平凡零点与素数…

EasyRTMP手机直播推送rtmp流flash无法正常播放问题
本文转自EasyDarwin团队Kim的博客:http://blog.csdn.net/jinlong0603/article/details/52960750 问题简介 EasyRTMP是EasyDarwin团队开发的一套简单易用的RTMP推送SDK。本文想讲述下开发过程中遇到的一个问题。问题的现象是使用EasyRTMP推送音视频流到自己搭建的ngi…

对称加密和非对称加密
链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 对称加密 对称密钥是双方使用相同的密钥 。 对称加密的要求 (1)需要强大的加密算法。算法至少应该满足:即使…

防火墙iptables介绍
防火墙: netfilter/iptables是集成在Linux2.4.X版本内核中的包过滤防火墙系统。该架构可以实现数据包过滤,网络地址转换以及数据包管理功能。linux中防火墙分为两部分:netfilter和iptables。netfilter位于内核空间,目前是Linux内核…

企业局域网的组建
写在前面的话 随着计算机技术发展啊,办公无纸化、网络化已经成为一种趋势。 企业局域网的概述 企业中可能有多台计算机,同时还可能有其他的硬件设备,比如打印机、扫描仪和数码相机等。通过组建小型网络,可以共享企业内部各种软、硬…

python3 线程池源码解析_5分钟看懂系列:Python 线程池原理及实现
概述传统多线程方案会使用“即时创建, 即时销毁”的策略。尽管与创建进程相比,创建线程的时间已经大大的缩短,但是如果提交给线程的任务是执行时间较短,而且执行次数极其频繁,那么服务器将处于不停的创建线程ÿ…

区块链+能源,能擦出什么样的火花?
链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 区块链从闯入能源行业的那一天起,就引起了行业内外人群的高度关注,关于能源区块链的争论与质疑不断搅动人们的神经。区块链能…

JS学习梳理(三)类型和语法
类型 JavaScript 有七种内置类型:null、undefined、boolean、number、string、object 和symbol,可以使用typeof 运算符来查看typeof返回的都是字符串很多开发人员将undefined 和undeclared 混为一谈, 但在JavaScript 中它们是两码事。undefin…

北师大历史系65 级同学聚会宁夏【之七】——在中阿之轴、西夏王陵、董府、板桥道堂、鸿乐府及告别宴会...
北师大历史系65级同学在中阿之轴 庞心田、王庆云、李建宇、樊淑爱、何明书、郑文范、李建宇夫人、惠晓秋、边聪民、登高夫人、张登高、杨家兴、杨森翔 西夏王陵 北师大历史系65级同学在西夏王陵 北师大历史系65级同学在西夏王陵 郑文范、王庆云在沙湖 北师大历史系65级同学在董…

会声会影水墨遮罩如何变大_自媒体长期网赚项目: 自媒体如何打造自己的自媒体知识付费课程(干货)...
小编简介:猫哥,自媒体人,9年互联网营销实战经验,乐于为大家分享实战经验,希望认识更多志同道合的朋友。面对现在知识付费的时代,知识就是财富,能把自己储存的知识转化为财富的人并不多ÿ…

OBS源代码阅读笔记
链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载。 obs配置文件加载:bool OBSBasic::InitBasicConfig(); OBS认证信息加载,貌似还没有实现吗? void Auth::Load(){ …