简单谈谈Python中的json与pickle


Posted in Python onJuly 19, 2017

这是用于序列化的两个模块:

• json: 用于字符串和python数据类型间进行转换

• pickle: 用于python特有的类型和python的数据类型间进行转换

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

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

import pickle
data = {'k1':123, 'k2':888}
#dumps可以将数据类型转换成只有python才认识的字符串
p_str = pickle.dumps(data)
print p_str


输出结果:

(dp0
S'k2'
p1
I888
sS'k1'
p2
I123
s.

将数据转换成只有Python认识的字符串,并写入文件:

import pickle
data = {'k1':123, 'k2':888}
#打开文件,然后将data写入
with open('data.pkl', 'wb') as f:
 pickle.dump(data, f)
#同样读取的时候也需要打开文件
with open('data.pkl', 'rb') as f:
 data_1 = pickle.load(f)
print data_1


结果:

{'k2': 888, 'k1': 123}

文件中显示的内容与上面一致

json的用法和pickle是一样的

import json
data = {'k1':123, 'k2':888}
p_str = json.dumps(data)
print p_str, type(p_str)


结果:

{"k2": 123, "k1": 888} <type 'str'>

看起来好像是个字典,但要注意了,实际上这是个字符串,因为json只能是字符串格式,只是看起来像字典而已。

import json
data = {'k1':123, 'k2':123}
 
#打开文件,然后将data写入
with open('data.pkl', 'w') as f:
 json.dump(data, f)
 
#同样读取的时候也需要打开文件
with open('data.pkl', 'r') as f:
 data_1 = json.load(f)
print(data_1, type(data_1))


结果:

({u'k2': 123, u'k1': 123}, <type 'dict'>)

能够读取出来,而且类型也是正确的。

那pickle和json有什么区别呢?

在上面两段代码中,pickle写入和读取文件时,用的是 ‘b'模式,而json没有。

json是可以在不同语言之间交换数据的,而pickle只在python之间使用。

json只能序列化最基本的数据类型,而pickle可以序列化所有的数据类型,包括类,函数都可以序列化。

以上这篇简单谈谈Python中的json与pickle就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python通过urllib2获取带有中文参数url内容的方法
Mar 13 Python
matplotlib绘制符合论文要求的图片实例(必看篇)
Jun 02 Python
Python使用pymysql小技巧
Jun 04 Python
用Pygal绘制直方图代码示例
Dec 07 Python
Python3之文件读写操作的实例讲解
Jan 23 Python
pandas.DataFrame选取/排除特定行的方法
Jul 03 Python
Linux下Pycharm、Anaconda环境配置及使用踩坑
Dec 19 Python
django 实现编写控制登录和访问权限控制的中间件方法
Jan 15 Python
Python使用Pandas读写Excel实例解析
Nov 19 Python
Django 返回json数据的实现示例
Mar 05 Python
基于pandas向csv添加新的行和列
May 25 Python
Python列表的索引与切片
Apr 07 Python
利用Python操作消息队列RabbitMQ的方法教程
Jul 19 #Python
高效测试用例组织算法pairwise之Python实现方法
Jul 19 #Python
Python实现将文本生成二维码的方法示例
Jul 18 #Python
Python实现动态加载模块、类、函数的方法分析
Jul 18 #Python
Python使用plotly绘制数据图表的方法
Jul 18 #Python
python中日志logging模块的性能及多进程详解
Jul 18 #Python
浅谈python中的__init__、__new__和__call__方法
Jul 18 #Python
You might like
php实现的任意进制互转类分享
2015/07/07 PHP
jquery tools 系列 scrollable(2)
2009/09/06 Javascript
JavaScript页面刷新与弹出窗口问题的解决方法
2010/03/02 Javascript
6个DIV 135或246间隔一秒轮番显示效果
2010/07/24 Javascript
IE关闭时判断及AJAX注销案例学习
2013/02/18 Javascript
利用javaScript实现点击输入框弹出窗体选择信息
2013/12/11 Javascript
jQuery中.live()方法的用法深入解析
2013/12/30 Javascript
node.js中的fs.fstatSync方法使用说明
2014/12/15 Javascript
《JavaScript DOM 编程艺术》读书笔记之JavaScript 简史
2015/01/09 Javascript
javascript实现全局匹配并替换的方法
2015/04/27 Javascript
基于jquery实现弹幕效果
2016/09/29 Javascript
微信小程序 less文件编译成wxss文件实现办法
2016/12/05 Javascript
教你一步步用jQyery实现轮播器
2016/12/18 Javascript
javascript工厂模式和构造函数模式创建对象方法解析
2016/12/30 Javascript
微信小程序实战之顶部导航栏(选项卡)(1)
2020/06/19 Javascript
js和jquery中获取非行间样式
2017/05/05 jQuery
[32:17]完美世界DOTA2联赛循环赛LBZS vs Forest第二场 10月30日
2020/10/31 DOTA
python标准日志模块logging的使用方法
2013/11/01 Python
Python使用PyGreSQL操作PostgreSQL数据库教程
2014/07/30 Python
python机器学习之神经网络(三)
2017/12/20 Python
Python操作mongodb的9个步骤
2018/06/04 Python
解决Ubuntu pip 安装 mysql-python包出错的问题
2018/06/11 Python
python是怎么被发明的
2020/06/15 Python
浅析python 通⽤爬⾍和聚焦爬⾍
2020/09/28 Python
python从ftp获取文件并下载到本地
2020/12/05 Python
车贷收入证明范本
2014/01/09 职场文书
师生聚会感言
2014/01/26 职场文书
应聘护理专业毕业自荐书范文
2014/02/12 职场文书
销售经理岗位职责
2014/03/16 职场文书
数控技校生自我鉴定
2014/04/19 职场文书
初中班主任经验交流材料
2014/05/16 职场文书
工作总结与自我评价
2014/09/18 职场文书
世界遗产导游词
2015/02/13 职场文书
试用期自我评价怎么写
2015/03/10 职场文书
金砖之国观后感
2015/06/11 职场文书
win10截图快捷键win+shift+s没有反应无法截图怎么解决?
2022/08/14 数码科技