简单谈谈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和shell实现的校验IP地址合法性脚本分享
Oct 23 Python
CentOS中使用virtualenv搭建python3环境
Jun 08 Python
django创建自定义模板处理器的实例详解
Aug 14 Python
Python 多线程Threading初学教程
Aug 22 Python
不管你的Python报什么错,用这个模块就能正常运行
Sep 14 Python
用Python PIL实现几个简单的图片特效
Jan 18 Python
对python:threading.Thread类的使用方法详解
Jan 31 Python
Django框架自定义模型管理器与元选项用法分析
Jul 22 Python
使用 Python 清理收藏夹里已失效的网站
Dec 03 Python
Python JSON编解码方式原理详解
Jan 20 Python
Python实现删除某列中含有空值的行的示例代码
Jul 20 Python
详解selenium + chromedriver 被反爬的解决方法
Oct 28 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 5.6.11 访问SQL Server2008R2的几种情况详解
2016/08/08 PHP
适合PHP初学者阅读的4本经典书籍
2016/09/23 PHP
php中引用符号(&amp;)的使用详细介绍
2016/12/06 PHP
php微信公众号开发之校园图书馆
2018/10/20 PHP
用函数模板,写一个简单高效的 JSON 查询器的方法介绍
2013/04/17 Javascript
javascript实现字符串反转的方法
2015/02/05 Javascript
跟我学习javascript的全局变量
2015/11/16 Javascript
js针对ip地址、子网掩码、网关的逻辑性判断
2016/01/06 Javascript
js删除Array数组中指定元素的两种方法
2016/08/03 Javascript
jQuery中show与hide方法用法示例
2016/09/16 Javascript
AngularJS使用自定义指令替代ng-repeat的方法
2016/09/17 Javascript
D3.js实现直方图的方法详解
2016/09/25 Javascript
js鼠标跟随运动效果
2017/03/11 Javascript
80%应聘者都不及格的JS面试题
2017/03/21 Javascript
Node.js从字符串生成文件流的实现方法
2019/08/18 Javascript
关于vue.js中实现方法内某些代码延时执行
2019/11/14 Javascript
nuxt.js 在middleware(中间件)中实现路由鉴权操作
2020/11/06 Javascript
详解Python中的序列化与反序列化的使用
2015/06/30 Python
遍历python字典几种方法总结(推荐)
2016/09/11 Python
Python文本特征抽取与向量化算法学习
2017/12/22 Python
python中matplotlib的颜色及线条控制的示例
2018/03/16 Python
Python实现合并两个列表的方法分析
2018/05/28 Python
python一键去抖音视频水印工具
2018/09/14 Python
Python参数类型以及常见的坑详解
2019/07/08 Python
python调用支付宝支付接口流程
2019/08/15 Python
Python常用base64 md5 aes des crc32加密解密方法汇总
2020/11/06 Python
pandas 数据类型转换的实现
2020/12/29 Python
Spartoo葡萄牙鞋类网站:线上销售鞋履与时尚配饰
2017/01/11 全球购物
华为俄罗斯官方网上商城:购买Huawei手机和平板
2017/04/21 全球购物
美国宠物护理专家:Revival Animal Health
2020/01/05 全球购物
Delphi笔试题
2016/11/14 面试题
保险经纪人求职信
2014/03/11 职场文书
一年级小学生评语
2014/04/22 职场文书
2014年幼儿园保育工作总结
2014/12/02 职场文书
幼儿园园长新年寄语2015
2014/12/08 职场文书
vue项目多环境配置(.env)的实现
2021/07/21 Vue.js