文档章节

python3 jason 、pickle 和cpickle

o
 osc_6zu0q9s3
发布于 2018/03/02 23:50
字数 737
阅读 36
收藏 0

「深度学习福利」大神带你进阶工程师,立即查看>>>

python JSON

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写。JSON的数据格式其实就是python里面的字典格式,里面可以包含方括号括起来的数组,也就是python里面的列表。

在python中,有专门处理jason格式的模块——jason和pickle

jason模块提供了四个方法:dumps、 dump 、loads、load

pickle模块也提供了四个功能:dumps、 dump、loads、load

一、dumps和dump

  dumps和dump序列化方法

  dumps只完成了序列化str

  dump必须传文件描述符,将序列化的str保存在文件中

文件操作:

 

 

 

二、loads和load

  loads和load反序列化方法

  loads只完成了反序列化。

  load只接受文件描述符,完成读取文件和反序列化

 

 三、json和pickle模块

jason模块和pickle模块都有dumps、dump、loads、load四种方法,而且用法一样

不同的是json模块序列化出来是通用格式,其他编程语言都认识,就是普通字符串

而pickle模块序列化出来的只有python可以识别,其他编程语言不认识,表现为乱码

不过pickle可以序列化函数,但是其他文件想用该函数,在该文件中需要有该文件的定义(定义和参数必须相同,内容可以不同)

 ×四.json和pickle序列化区别

由此课件json和pickle序列化后数据是由不同的,如果进行文件操作json只需对文件进行str数据类型的‘r’、‘w’、‘r+’、‘w+’、‘a’方式打开读写,load\dump操作;而pickle则是对文件进行bytes数据类型的‘rb’\'wb'\'ab'等之类的load\dump操作。

五python对象与json对象的对应关系

 

五总结

1、json序列化方法

  dumps:无文件操作  dump:序列化+写入文件

2、jason反序列化方法:

  loads:无文件操作  load:读文件+反序列化

3、json模块序列化的数据更通用

  pickle模块序列化数据仅python可用,但功能强大,可以序列化函数。

4、json模块可以序列化和反序列化的数据类型见上表

5、格式化写入文件利用 indent=4

cPckle

Python标准库提供pickle和cPickle模块。cPickle是用C编码的,在运行效率上比pickle要高,但是cPickle模块中定义的类型不能被继承(其实大多数时候,我们不需要从这些类型中继承,推荐使用cPickle)。cPickle和pickle的序列化/反序列化规则是一样的,使用pickle序列化一个对象,可以使用cPickle来反序列化。同时,这两个模块在处理自引用类型时会变得更加“聪明”,它不会无限制的递归序列化自引用对象,对于同一对象的多次引用,它只会序列化一次。

 

o
粉丝 0
博文 499
码字总数 0
作品 0
私信 提问
加载中
请先登录后再评论。
Python开发者社区整站源码--Pythoner

pythoner.net 整站源代码 依赖模块 Django 1.4.2 PIL DjangoVerifyCode 0.2.2 开发环境配置 运行scripts目录下的setupenv.sh文件,将会自动安装配置所需环境 设置本地环境变量:export env=D...

~T.y~
2013/04/10
3.2K
0
Python数据分析工具包--Pandas

Python Data Analysis Library 或 pandas 是连接 SciPy 和 NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。Pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集...

匿名
2012/10/30
2.1W
2
Python-tesseract

Python-tesseract 是 Tesseract OCR 的 Python 封装包,可作常用的图片文件读取和解码。 示例代码: import cv2.cv as cv import tesseract api = tesseract.TessBaseAPI() api.Init(".","e......

李三石
2012/11/08
6.2K
0
纯Python图形GUI库--PyQtGraph

pyqtgraph 是纯 Python 图形 GUI 库,基于PyQT4 /pyside和NumPy。它主要目的用于在数学/科学/工程中。MIT的开源许可下发布。 主要特点: 基本的2D交互视图中框绘制 线和散点图 数据可平移/缩...

匿名
2013/05/16
9.6K
0
Python 解释器--Nuitka

Nuitka是一个Python的替代编译器。它可以无缝地替代和扩展Python的解释和编译工作。现在支持CPython2.6、2..7、3.2、3.3和3.4版本。它可以执行编译的代码,并能用很兼容的方式将目标代码一起...

匿名
2013/05/20
7.4K
0

没有更多内容

加载失败,请刷新页面

加载更多

ts 项目中 引入 js文件

创建项目 npx create-react-app my-app --template redux-typescript 最好将js相关的放到一起 index.js export const fib = (n) => (n < 2 ? n : fib(n - 1) + fib(n - 2)); index.d.ts......

阿豪boy
10分钟前
0
0
设计模式(17) 迭代器模式

迭代器模式 基于IEnumerable的实现 使用场景 迭代器模式的优缺点 迭代器模式 迭代器模式用于顺序访问集合对象的元素,而不需要知道集合对象的底层表示。Java和.Net等语言已经将迭代器作为其内...

zhixin9001
11分钟前
0
0
python 利用jinja2模板生成html代码实例

这篇文章主要介绍了python 利用jinja2模板生成html代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 1 2 3 4 5 6 7 8 9 10 11 ...

stys35
16分钟前
10
0
【线性代数】范数(norm)

定义 范数是将向量映射到非负值得函数,常被用来衡量一个向量的大小。 常用向量范数 范数类型 计算公式 MATLAB调用 补充解释 L1范数L1范数 ∥x∥1=∑ni=1|xi|‖x‖1=∑i=1n|xi| norm(x,1) 向...

黄瓜与土豆
31分钟前
7
0
Vue视频播放器 vue-video-player

Vue视频播放器 vue-video-player 本篇主要记录一下 在 vue 项目中 如何使用 vue-video-player 来作为视频播放器,由于最近在做博客的 轻松一刻模块 所以拿这个尝试一下 在此纪录一下 以及遇到...

AskaJohnny
38分钟前
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部