简单谈谈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的几条建议分享
Feb 10 Python
Centos Python2 升级到Python3的简单实现
Jun 21 Python
使用python对文件中的单词进行提取的方法示例
Dec 21 Python
Python编程图形库之Pillow使用方法讲解
Dec 28 Python
DataFrame:通过SparkSql将scala类转为DataFrame的方法
Jan 29 Python
Python操作rabbitMQ的示例代码
Mar 19 Python
python滑块验证码的破解实现
Nov 10 Python
python中提高pip install速度
Feb 14 Python
Python内存映射文件读写方式
Apr 24 Python
Python垃圾回收机制三种实现方法
Apr 27 Python
10张动图学会python循环与递归问题
Feb 06 Python
Python学习之os包使用教程详解
Mar 21 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
将兴奋、喜悦和坎加斯带到戴安娜:亚马逊公主
2020/03/03 欧美动漫
PHP+APACHE实现网址伪静态
2015/02/22 PHP
总结PHP代码规范、流程规范、git规范
2018/06/18 PHP
常用参考资料(手册)下载或者链接
2006/07/22 Javascript
Prototype Array对象 学习
2009/07/19 Javascript
asp.net+js 实现无刷新上传解析csv文件的代码
2010/05/17 Javascript
jqTransform form表单美化插件使用方法
2012/07/05 Javascript
使用CSS+JavaScript或纯js实现半透明遮罩效果的实例分享
2016/05/09 Javascript
AngularJS指令中的绑定策略实例分析
2016/12/14 Javascript
小程序分享模块超级详解(推荐)
2019/04/10 Javascript
JavaScript实现随机点名小程序
2020/10/29 Javascript
[05:31]DOTA2上海特级锦标赛主赛事第三日RECAP
2016/03/05 DOTA
[01:34]DOTA2 7.22版本新增神杖效果一览(敏捷英雄篇)
2019/05/28 DOTA
Python中Django框架利用url来控制登录的方法
2015/07/25 Python
python获取当前运行函数名称的方法实例代码
2017/04/06 Python
详解python之多进程和进程池(Processing库)
2017/06/09 Python
python解析html提取数据,并生成word文档实例解析
2018/01/22 Python
PyQt5主窗口动态加载Widget实例代码
2018/02/07 Python
python读取文件名称生成list的方法
2018/04/27 Python
Python发展简史 Python来历
2019/05/14 Python
python 字典套字典或列表的示例
2019/12/16 Python
pytorch下使用LSTM神经网络写诗实例
2020/01/14 Python
HTML5拖放效果的实现代码
2016/11/17 HTML / CSS
澳大利亚领先的孕妇服装品牌:Mamaway
2018/08/14 全球购物
Tommy Hilfiger美国官网:美国高端休闲领导品牌
2019/01/14 全球购物
统计员岗位职责
2013/11/14 职场文书
初中三好学生事迹材料
2014/01/13 职场文书
新闻学专业大学生职业生涯规划范文
2014/03/02 职场文书
2014学习全国两会精神心得体会2000字
2014/03/11 职场文书
档案保密承诺书
2014/06/03 职场文书
群众路线领导干部个人对照检查材料(集锦)
2014/09/23 职场文书
离婚上诉状范文
2015/05/23 职场文书
2016年情人节问候语
2015/11/11 职场文书
承诺书的签字人,需不需要承担相应的责任?
2019/07/09 职场文书
python实现A*寻路算法
2021/06/13 Python
spring cloud eureka 服务启动失败的原因分析及解决方法
2022/03/17 Java/Android