python学习笔记(二)marshal pickle cpickle json jsonpickle

序列化将对象的状态信息转换为可以存储或可以通过网络传输的过程,传输的格式可以是JSON、XML等。

反序列化:从存储区域(JSON,XML)读取反序列化对象的状态,重新创建该对象。

pickle模块实现了基本的数据序列化和反序列化。通过pickle模块的序列化操作我们能够将程序中运行的对象信息保存到文件中去,永久存储;通过pickle模块的反序列化操作,我们能够从文件中创建上一次程序保存的对象。pickle模块可将python对象直接保存到文件中,而不需要将它们转换为字符串,也不需要用底层的文件访问操作把它们写入到一个二进制文件里。

JSON(JavaScript Object Notation):一种轻量级数据交换格式,相对于XML而言更简单,也易于阅读和编写,机器也方便解析和生成,Json是JavaScript中的一个子集。

json模块通过json.dumps()方法,对简单数据类型编码,把一个python对象编码转换成json字符串;通过json.loads()方法,对简单数据类型解码,将json字符串解码为python对象


json和pickle/marshal的比较

json提供了一个API,像用户熟悉的标准库marshal和pickle模块一样。

与marshal/pickle不同的是,json不是一个框架协议,所以试图通过调用dump()和同一fp来序列化对象,会造成不合理的json文件。

简单来说,json比pickle在读入操作dump()快25倍,写入操作load()快15倍。数据来源:http://kovshenin.com/2010/pickle-vs-json-which-is-faster/

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值