python——pickle模块的详解

介绍

  • pickle模块实现了用于序列化和反序列化Python对象结构的二进制协议

  • “Pickling”是将Python对象层次结构转换为字节流的过程, “unpickling”是反向操作,从而将字节流(来自二进制文件或类似字节的对象)转换回对象层次结构。

  • pickle协议和JSON(JavaScript Object Notation)的区别 :

    1. JSON是一种文本序列化格式(它输出unicode文本,虽然大部分时间它被编码utf-8),而pickle是二进制序列化格式;
    2. JSON是人类可读的,而pickle则不是;
    3. JSON是可互操作的,并且在Python生态系统之外广泛使用,而pickle是特定于Python的;
  • pickle可以表示极其庞大的Python类型(其中许多是自动的,通过巧妙地使用Python的内省工具;复杂的案例可以通过实现特定的对象API来解决)。

  • pickle 数据格式是特定于Python的。它的优点是没有外部标准强加的限制, 但是这意味着非Python程序可能无法重建pickled Python对象。

API

dumps()

  • 序列化对象层次结构。
pickle.dump(obj,file,protocol = None,*,fix_imports = True )

将obj对象的编码pickle编码表示写入到文件对象中。

pickle.load(file,*,fix_imports = True,encoding =“ASCII”,errors =“strict” )

从打开的文件对象 文件中读取pickle对象表示,并返回其中指定的重构对象层次结构。

pickle.dumps(obj,protocol = None,*,fix_imports = True )

将对象的pickled表示作为bytes对象返回,而不是将其写入文件。

pickle.loads(bytes_object,*,fix_imports = True,encoding =“ASCII”,errors =“strict” )

从bytes对象读取pickle对象层次结构并返回其中指定的重构对象层次结构。

loads()

  • 对数据流进行反序列化。
import numpy as np
import pickle
import ioif __name__ == '__main__':path = 'test'f = open(path, 'wb')data = {'a':123, 'b':'ads', 'c':[[1,2],[3,4]]}pickle.dump(data, f)f.close()f1 = open(path, 'rb')data1 = pickle.load(f1)print(data1)

python——pickle模块的详解相关推荐

  1. KBQA_多轮对话——模型源码解析(一)Pickle模块功能详解

    KBQA_多轮对话--模型源码解析(一)Pickle模块功能详解 pickle --- Python 对象序列化的基本功能 1.pickle基本概念 2.pickle 与 json 模块的比较 3.p ...

  2. Python re模块用法详解

    Python re模块用法详解 在 Python 爬虫过程中,实现网页元素解析的方法有很多,正则解析只是其中之一,常见的还有 BeautifulSoup 和 lxml,它们都支持网页 HTML 元素的 ...

  3. python时间模块time详解

    python时间模块time详解 在平常的代码中,我们常常需要与时间打交道.在Python中,与时间处理有关的模块就包括:time,datetime以及calendar.这篇文章,主要讲解time模块 ...

  4. python middleware模块_详解利用django中间件django.middleware.csrf.CsrfViewMiddleware防止csrf攻击...

    一.在django后台处理 1.将django的setting中的加入django.contrib.messages.middleware.MessageMiddleware,一般新建的django项 ...

  5. python flask-caching模块缓存详解

    python 模块 flask-caching 缓存 文章目录 python 模块 flask-caching 缓存 1. 介绍 2. 安装 3. 配置参数 4. cache方法 5. 显示缓存存储 ...

  6. python json模块 超级详解

    JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式.JSON的数据格式其实就是python里面的字典格式,里面可以包含方括号括起来的数组,也 ...

  7. python ssl模块用法详解_一看就懂,Python 日志模块详解及应用!

    日志概述 百度百科的日志概述: Windows网络操作系统都设计有各种各样的日志文件,如应用程序日志,安全日志.系统日志.Scheduler服务日志.FTP日志.WWW日志.DNS服务器日志等等,这些 ...

  8. linux datetime,Python datetime模块示例详解

    一.datetime模块介绍 (一).datetime模块中包含如下类: 类名功能说明 date 日期对象,常用的属性有year, month, day time 时间对象 datetime 日期时间 ...

  9. python伪随机数模块random详解

    本文已整合到这里:Python内置数学模块全整理,易查易阅 文章目录 基本原理 整数和字节 分布函数 用于序列的随机函数 基本原理 用于生成伪随机数,之所以有个伪字,是因为计算机没法生成真正的随机数. ...

最新文章

  1. 为什么每家公司都需要协作工具?
  2. LeCun自曝使用C语言23年之久,2年前才上手Python,还曾短暂尝试Lua
  3. WCF部署到IIS异常(详细: 不能加载类型System.ServiceModel.Activation.HttpModule )
  4. Ribbon客户端负载均衡介绍
  5. MyBatis和hibernate本质区别与应用场景
  6. tar打包排除某个文件夹
  7. SAP UI5 main page design
  8. python做自动化如何定位动态元素_python-web自动化-元素定位
  9. 将试用版visual studio 2008升级为正式版 --更新
  10. 澳门大学健康科学学院生物信息核心实验中心高薪诚聘研究助理
  11. 常用命令(3)---Assertion(selenium学习笔记(一)seleniumIDE)
  12. 【论文笔记】Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition
  13. 漫谈Java IO之 NIO那些事儿
  14. java学习(eclipse环境的使用)
  15. MSP430项目设计:2020年TI杯大学生电子设计竞赛 坡道行驶电动小车(C题)循迹小车(分享项目展示视频与源码)
  16. yytext显示html并编辑,YYText的使用
  17. 记账时对收支、借还款进行分类记录
  18. 给文件及文件夹设置密码
  19. 男人的消费观连狗都不如
  20. CS 与 PS 的区别

热门文章

  1. 学了python可以做什么兼职,学python真的能做兼职吗
  2. java jsp框架_介绍几个开源的JSP开发框架
  3. Linux安装node
  4. 使用启动U盘安装Ubuntu系统全过程(含图文)
  5. 9.Kafka 分区分配策略(Range分配策略 RoundRobin分配策略)
  6. Java经典排序算法:选择排序,动图演示排序过程
  7. css打包优化去重去无效代码purifycss-webpack purify-css -8
  8. Execl模板导出复杂Execl文件
  9. G2O (General Graph Optimization)入门及简单使用
  10. 北大发布全国最好医院排名,详细到科室,关键救命