python3 jason 、pickle 和cpickle
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相关推荐
- python核心模块之pickle和cPickle讲解
pickle模块使用的数据格式是python专用的,并且不同版本不向后兼容,同时也不能被其他语言说识别.要和其他语言交互,可以使用内置的json包使用pickle模块你可以把 Python 对象直接保 ...
- Python3内置模块之Pickle和cPickle数据持久化方法小结
概述 模块Pickle实现了对一个 Python 对象结构的二进制的序列化和反序列化. 即当Python程序持续运行一些字符串.列表字典.甚至自定义的类等数据对象,需要持久化存储,即存储在磁盘中,防 ...
- python3 中_pickle (cPickle) 序列化 (Serialization)
1.1.概述:序列化是将对象的状态信息转换为可以存储或传输的形式的过程 1.2.cPickle与pickle二者的功能几乎完全一致接口完全一样(不一样的很少使用到)区别:cPickle用C语言编写, ...
- pickle与cpickle的用法
将对象序列化(保存的意思)和反序列化(读取的意思) cpickle是pickle的C语言编译版本 下面是dump和load的用法 import pickle favorite_color = { ...
- cpickle支持的python版本_Python序列化模块pickle和cPickle
Python的序列化是指把变量从内存中变为可以储存/传输的数据/文件的过程. 在Python中叫pickling,在其他语言中也被称之为serialization,marshalling,flatte ...
- Python3中pickle模块介绍
Pyhton3中的pickle模块用于对Python对象结构的二进制进行序列化(或pickling)和反序列化(或unpickling)."pickling"是将Pyt ...
- python3.4 pickle 序列化大于4GB文件
挑干的说 python pickle 序列化大于4GB文件,在使用python3.4以上版本时,只需要指定protocol=4关键字参数即可.其他版本需要将数据分块. 关于协议版本 pickle目前有 ...
- python3 cPickle
python3中 python import cPickle 报错了 cPickle 是 python2 的库,到 python3&#x
- Python 序列化 pickle/cPickle模块
Python 序列化 pickle/cPickle模块 2013-10-17 Posted by yeho Python序列化的概念很简单.内存里面有一个数据结构,你希望将它保存下来,重用,或者发送给 ...
最新文章
- ICML2020 | 基于贝叶斯元学习在关系图上进行小样本关系抽取
- Yii2.0实现微信公众号后台开发
- 入门Mac快捷键详细分类整理,包括Eclipse和Android Studio中一些常用的快捷键
- ios 可以为空声明_iOS开发中使用OC和swift的对比(2)
- 写接口是什么意思啊_input是什么接口?了解这个小常识,以后接线更容易
- 十个谈话技巧让你在IT职场出人头地
- 自动优化Windows Xp批处理文件
- P1090 [NOIP2004 提高组] 合并果子 / [USACO06NOV] Fence Repair G
- 联想笔记本键盘排线_笔记本键盘排线怎么拆 thinkpad
- python中数字加引号和不加引号的区别_高考完小白自学Python,不太懂print语句中一个加引号,一个不加?...
- 大数据早报:阿里巴巴收购以色列创业公司 迅雷再次回应玩客云用户维权事件(12.1)
- 美食杰 login的实现效果
- eclipse下maven调试的技巧(Re-run Maven using the -X switch to enable full debug logging.)
- PHP Yii框架之表单验证规则大全
- Word处理控件Aspose.Words功能演示:在C#中的Word文档中添加或删除水印
- 如何合并svn分支到主干上
- HDU - 7125 Master of Shuangpin
- 关于QT跨平台和编译器的理解
- 第一章 Windows 2000对调试技术的支持
- 轻轨列车 light rail train
热门文章
- Java社交商城APP+小程序多功能B2B2C商城源码
- 服务器网站需要多大硬盘,做网站服务器硬盘多大
- 世界环境保护日的志愿者
- windows 驱动开发基础(二)事件通知---关于irp处理,DPC,链表等
- 谁动了你的cookie
- Python中使用print,每次输出数据到文件时,记录当前输出时间,数据序号加一
- springboot整合tk-mybatis框架搭建
- VMware VCP认证常见问答题
- Vue新手学习笔记:vue-cli框架
- 微信的账号连接服务器失败怎么回事,微信无法连接到服务器的原因和6个解决方法...