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 错误和异常小结
Oct 09 Python
python计算时间差的方法
May 20 Python
Python实现曲线点抽稀算法的示例
Oct 12 Python
Python2和Python3中print的用法示例总结
Oct 25 Python
Python统计python文件中代码,注释及空白对应的行数示例【测试可用】
Jul 25 Python
python实现多人聊天室
Mar 31 Python
Python中collections模块的基本使用教程
Dec 07 Python
解决pandas .to_excel不覆盖已有sheet的问题
Dec 10 Python
详解python中的数据类型和控制流
Aug 08 Python
Python网络爬虫信息提取mooc代码实例
Mar 06 Python
基于python连接oracle导并出数据文件
Apr 28 Python
在keras 中获取张量 tensor 的维度大小实例
Jun 10 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
关于Iframe如何跨域访问Cookie和Session的解决方法
2013/04/15 PHP
php通过array_shift()函数移除数组第一个元素的方法
2015/03/18 PHP
了解PHP的返回引用和局部静态变量
2015/06/04 PHP
深入解析PHP的Yii框架中的缓存功能
2016/03/29 PHP
thinkPHP多域名情况下使用memcache方式共享session数据的实现方法
2016/07/21 PHP
php使用redis的有序集合zset实现延迟队列应用示例
2020/02/20 PHP
点击广告后才能获得下载地址
2006/10/26 Javascript
改善用户体验的五款jQuery插件分享
2011/05/22 Javascript
ExtJS判断IE浏览器类型的方法
2014/02/10 Javascript
Ajax使用原生态JS验证用户名是否存在
2020/05/26 Javascript
js获取腾讯视频ID的方法
2016/10/03 Javascript
jQuery插件实现可输入和自动匹配的下拉框
2016/10/24 Javascript
各种选择框jQuery的选中方法(实例讲解)
2017/06/27 jQuery
JS全角与半角转化实例(分享)
2017/07/04 Javascript
Vue Element使用icon图标教程详解(第三方)
2018/02/07 Javascript
微信小程序canvas实现刮刮乐效果
2018/07/09 Javascript
js删除数组中某几项的方法总结
2019/01/16 Javascript
详解vue使用插槽分发内容slot的用法
2019/03/28 Javascript
JavaScript实现电灯开关小案例
2020/03/30 Javascript
vue自定义指令和动态路由实现权限控制
2020/08/28 Javascript
ant design 日期格式化的实现
2020/10/27 Javascript
Python BeautifulSoup中文乱码问题的2种解决方法
2014/04/22 Python
Windows和Linux下使用Python访问SqlServer的方法介绍
2015/03/10 Python
django2 快速安装指南分享
2018/01/05 Python
python实现读取大文件并逐行写入另外一个文件
2018/04/19 Python
对python:循环定义多个变量的实例详解
2019/01/20 Python
Python图像处理之膨胀与腐蚀的操作
2021/02/07 Python
详解如何在css中引入自定义字体(font-face)
2018/05/17 HTML / CSS
基于HTML5 FileSystem API的使用介绍
2013/04/24 HTML / CSS
英国在线房屋中介网站:Yopa
2018/01/09 全球购物
编写strcpy函数
2014/06/24 面试题
信息技术专业个人自我评价
2013/12/11 职场文书
文秘应届生求职信
2014/07/05 职场文书
简爱电影观后感
2015/06/10 职场文书
golang中的并发和并行
2021/05/08 Golang
5行Python代码实现一键批量扣图
2021/06/29 Python