python3 jason 、pickle 和cpickle

python JSONpython

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

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

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

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

1、dumps和dump函数

  dumps和dump序列化方法编码

  dumps只完成了序列化strspa

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

文件操做:对象

 

 

 

2、loads和load

  loads和load反序列化方法

  loads只完成了反序列化。

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

 

 3、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对象的对应关系

 

五总结

一、json序列化方法

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

二、jason反序列化方法:

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

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

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

四、json模块能够序列化和反序列化的数据类型见上表

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

cPckle

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

相关文章
相关标签/搜索