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来反序列化。同时,这两个模块在处理自引用类型时会变得更加“聪明”,它不会无限制的递归序列化自引用对象,对于同一对象的多次引用,它只会序列化一次。

转载于:https://www.cnblogs.com/ghming/p/8495512.html

python3 jason 、pickle 和cpickle相关推荐

  1. python核心模块之pickle和cPickle讲解

    pickle模块使用的数据格式是python专用的,并且不同版本不向后兼容,同时也不能被其他语言说识别.要和其他语言交互,可以使用内置的json包使用pickle模块你可以把 Python 对象直接保 ...

  2. Python3内置模块之Pickle和cPickle数据持久化方法小结

    概述 模块Pickle实现了对一个 Python 对象结构的二进制的序列化和反序列化.  即当Python程序持续运行一些字符串.列表字典.甚至自定义的类等数据对象,需要持久化存储,即存储在磁盘中,防 ...

  3. python3 中_pickle (cPickle) 序列化 (Serialization)

    1.1.概述:序列化是将对象的状态信息转换为可以存储或传输的形式的过程 1.2.cPickle与pickle二者的功能几乎完全一致接口完全一样(不一样的很少使用到)区别:cPickle用C语言编写, ...

  4. pickle与cpickle的用法

    将对象序列化(保存的意思)和反序列化(读取的意思) cpickle是pickle的C语言编译版本 下面是dump和load的用法 import pickle   favorite_color = { ...

  5. cpickle支持的python版本_Python序列化模块pickle和cPickle

    Python的序列化是指把变量从内存中变为可以储存/传输的数据/文件的过程. 在Python中叫pickling,在其他语言中也被称之为serialization,marshalling,flatte ...

  6. Python3中pickle模块介绍

          Pyhton3中的pickle模块用于对Python对象结构的二进制进行序列化(或pickling)和反序列化(或unpickling)."pickling"是将Pyt ...

  7. python3.4 pickle 序列化大于4GB文件

    挑干的说 python pickle 序列化大于4GB文件,在使用python3.4以上版本时,只需要指定protocol=4关键字参数即可.其他版本需要将数据分块. 关于协议版本 pickle目前有 ...

  8. python3 cPickle

    python3中 python import cPickle 报错了 cPickle 是 python2 的库,到 python3&#x

  9. Python 序列化 pickle/cPickle模块

    Python 序列化 pickle/cPickle模块 2013-10-17 Posted by yeho Python序列化的概念很简单.内存里面有一个数据结构,你希望将它保存下来,重用,或者发送给 ...

最新文章

  1. ICML2020 | 基于贝叶斯元学习在关系图上进行小样本关系抽取
  2. Yii2.0实现微信公众号后台开发
  3. 入门Mac快捷键详细分类整理,包括Eclipse和Android Studio中一些常用的快捷键
  4. ios 可以为空声明_iOS开发中使用OC和swift的对比(2)
  5. 写接口是什么意思啊_input是什么接口?了解这个小常识,以后接线更容易
  6. 十个谈话技巧让你在IT职场出人头地
  7. 自动优化Windows Xp批处理文件
  8. P1090 [NOIP2004 提高组] 合并果子 / [USACO06NOV] Fence Repair G
  9. 联想笔记本键盘排线_笔记本键盘排线怎么拆 thinkpad
  10. python中数字加引号和不加引号的区别_高考完小白自学Python,不太懂print语句中一个加引号,一个不加?...
  11. 大数据早报:阿里巴巴收购以色列创业公司 迅雷再次回应玩客云用户维权事件(12.1)
  12. 美食杰 login的实现效果
  13. eclipse下maven调试的技巧(Re-run Maven using the -X switch to enable full debug logging.)
  14. PHP Yii框架之表单验证规则大全
  15. Word处理控件Aspose.Words功能演示:在C#中的Word文档中添加或删除水印
  16. 如何合并svn分支到主干上
  17. HDU - 7125 Master of Shuangpin
  18. 关于QT跨平台和编译器的理解
  19. 第一章 Windows 2000对调试技术的支持
  20. 轻轨列车 light rail train

热门文章

  1. Java社交商城APP+小程序多功能B2B2C商城源码
  2. 服务器网站需要多大硬盘,做网站服务器硬盘多大
  3. 世界环境保护日的志愿者
  4. windows 驱动开发基础(二)事件通知---关于irp处理,DPC,链表等
  5. 谁动了你的cookie
  6. Python中使用print,每次输出数据到文件时,记录当前输出时间,数据序号加一
  7. springboot整合tk-mybatis框架搭建
  8. VMware VCP认证常见问答题
  9. Vue新手学习笔记:vue-cli框架
  10. 微信的账号连接服务器失败怎么回事,微信无法连接到服务器的原因和6个解决方法...