Python标准库json模块和pickle模块使用详解


Posted in Python onMarch 10, 2020

将Python数据类型转换为其他代码格式叫做(序列化),而json就是在各个代码实现转换的中间件。

序列化要求:

1. 只能有int,str,bool,list,dict,tuple的类型支持序列化。

2. json序列化是以字符串形式出现。那么:lis= "[11,22,33]" 这样的也能称为序列化。

3. 必须将数据类型包裹在list或dict内进行转换。

4. json内部的str格式,必须以双引号来进行包裹。

5. bool值转换为小写的首字母

json.dumps

将py转换为json(序列化)格式的字符串

lis = [11,22,33]
json_lis = json.dumps(lis)
print(type(json_lis))
#<class 'str'>

如果序列化时,存在中文,那么默认将会以unnicode类型转换。可以使用:

v = [1,2,3,4,'哈哈']
data= json.dumps(v)
print(data)
 
#[1, 2, 3, 4, "\u54c8\u54c8"]
 
#################################
v = [1,2,3,4,'哈哈']
data= json.dumps(v,ensure_ascii=False)
print(data)
 
#[1, 2, 3, 4, "哈哈"]

将序列化格式字符串,反序列化为python文件格式。

lis = [11,22,33]
json_lis = json.dumps(lis)
lis_1 = json.loads(json_lis)
print(type(lis_1))

将序列化好的内容直接存放到一个文件内。load为直接读取文件内序列化的内容进行反序列化。

import json
v = [1,2,3,4,'哈哈']
with open('test.txt',mode='w',encoding='utf-8') as f:
  json.dump(v,f,ensure_ascii=False)

pickle模块:

pickle的使用方式和json完全一样,需要注意的是:

1. pickle只支持python类型的转换,而json支持其他代码语言的转换。

2. pickle可以将python中所有数据类型进行转换,而json不能转换元组(转换成列表)和集合,而且必须套到列表或字典中。

3. json序列化后的类型为字符串类型,而pickle所序列化的类型为bytes类型。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python定时检查启动某个exe程序适合检测exe是否挂了
Jan 21 Python
Python中optionParser模块的使用方法实例教程
Aug 29 Python
在Django框架中运行Python应用全攻略
Jul 17 Python
实例解析Python中的__new__特殊方法
Jun 02 Python
python中for用来遍历range函数的方法
Jun 08 Python
用Python编写一个高效的端口扫描器的方法
Dec 20 Python
python中的句柄操作的方法示例
Jun 20 Python
Python多版本开发环境管理工具介绍
Jul 03 Python
Python assert关键字原理及实例解析
Dec 13 Python
python实现低通滤波器代码
Feb 26 Python
python高阶函数map()和reduce()实例解析
Mar 16 Python
在tensorflow以及keras安装目录查询操作(windows下)
Jun 19 Python
Python xlrd excel文件操作代码实例
Mar 10 #Python
python图片剪裁代码(图片按四个点坐标剪裁)
Mar 10 #Python
python 截取XML中bndbox的坐标中的图像,另存为jpg的实例
Mar 10 #Python
Python代码一键转Jar包及Java调用Python新姿势
Mar 10 #Python
Python读取VOC中的xml目标框实例
Mar 10 #Python
Python 读取xml数据,cv2裁剪图片实例
Mar 10 #Python
python代码xml转txt实例
Mar 10 #Python
You might like
BBS(php &amp; mysql)完整版(五)
2006/10/09 PHP
php 中英文语言转换类
2011/09/07 PHP
destoon实现会员商铺中指定会员或会员组投放广告的方法
2014/08/21 PHP
php使用curl代理实现抓取数据的方法
2017/02/03 PHP
Windows平台实现PHP连接SQL Server2008的方法
2017/07/26 PHP
php用wangeditor3实现图片上传功能
2019/08/22 PHP
JavaScript 图片预览效果 推荐
2009/12/22 Javascript
JQuery AJAX提交中文乱码的解决方案
2010/07/02 Javascript
浅析JavaScript中的delete运算符
2013/11/30 Javascript
排序算法的javascript实现与讲解(99js手记)
2014/09/28 Javascript
javascript控制台详解
2015/06/25 Javascript
jQuery入门之层次选择器实例简析
2015/12/11 Javascript
用jQuery的AJax实现异步访问、异步加载
2016/11/02 Javascript
node.js中express中间件body-parser的介绍与用法详解
2017/05/23 Javascript
node.js + socket.io 实现点对点随机匹配聊天
2017/06/30 Javascript
微信小程序顶部可滚动导航效果
2017/10/31 Javascript
原生js检测页面加载完毕的实例
2018/09/11 Javascript
微信小程序 this.triggerEvent()的具体使用
2019/12/10 Javascript
Node.js API详解之 Error模块用法实例分析
2020/05/14 Javascript
python遍历一个目录,输出所有的文件名的实例
2018/04/23 Python
在Python中合并字典模块ChainMap的隐藏坑【推荐】
2019/06/27 Python
django连接oracle时setting 配置方法
2019/08/29 Python
python 实现在无序数组中找到中位数方法
2020/03/03 Python
使用npy转image图像并保存的实例
2020/07/01 Python
PyQt5的QWebEngineView使用示例
2020/10/20 Python
医学检验专业个人求职信范文
2013/12/04 职场文书
本科生导师推荐信范文
2014/05/18 职场文书
运动会宣传口号
2014/06/09 职场文书
英语专业自荐书
2014/06/13 职场文书
自愿离婚协议书范本
2014/09/13 职场文书
公司周年庆典标语
2014/10/07 职场文书
2015年污水处理厂工作总结
2015/05/26 职场文书
小学英语新课改心得体会
2016/01/22 职场文书
民政局2016年“六一”儿童节慰问活动总结
2016/04/06 职场文书
小型企业的绩效考核制度模板
2019/11/21 职场文书
使用 Docker Compose 构建复杂的多容器App
2022/04/30 Servers