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的setuptools框架下生成egg的教程
Apr 13 Python
使用Python来开发Markdown脚本扩展的实例分享
Mar 04 Python
用Python将动态GIF图片倒放播放的方法
Nov 02 Python
简单了解什么是神经网络
Dec 23 Python
python提取包含关键字的整行数据方法
Dec 11 Python
关于初始种子自动选取的区域生长实例(python+opencv)
Jan 16 Python
pyqt5数据库使用详细教程(打包解决方案)
Mar 25 Python
pandas读取csv文件提示不存在的解决方法及原因分析
Apr 21 Python
python 异步async库的使用说明
May 04 Python
call在Python中改进数列的实例讲解
Dec 09 Python
Python爬虫之自动爬取某车之家各车销售数据
Jun 02 Python
Python集合set()使用的方法详解
Mar 18 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
php xml文件操作实现代码(二)
2009/03/20 PHP
PHP连接access数据库
2015/03/27 PHP
php批量转换文件夹下所有文件编码的函数类
2017/08/06 PHP
javascript web对话框与弹出窗口
2009/02/22 Javascript
用JavaScript玩转游戏物理(一)运动学模拟与粒子系统
2010/06/19 Javascript
jQuery实现原理的模拟代码 -6 代码下载
2010/08/16 Javascript
javascript AOP 实现ajax回调函数使用比较方便
2010/11/20 Javascript
js修改input的type属性及浏览器兼容问题探讨与解决
2013/01/23 Javascript
JS onmousemove鼠标移动坐标接龙DIV效果实例
2013/12/16 Javascript
通过js为元素添加多项样式,浏览器全兼容写法
2014/08/30 Javascript
js获取页面传来参数的方法
2014/09/06 Javascript
JS组件Bootstrap按钮组与下拉按钮详解
2016/05/10 Javascript
AngularJS优雅的自定义指令
2016/07/01 Javascript
详解Vue中过度动画效果应用
2017/05/25 Javascript
详解从零搭建 vue2 vue-router2 webpack3 工程
2017/11/22 Javascript
js判断文件类型大小并给出提示的实现方法
2018/01/03 Javascript
原生JS实现无缝轮播图片
2020/06/24 Javascript
vue $mount 和 el的区别说明
2020/09/11 Javascript
Python中atexit模块的基本使用示例
2015/07/08 Python
python开发之基于thread线程搜索本地文件的方法
2015/11/11 Python
python远程连接服务器MySQL数据库
2018/07/02 Python
python给微信好友定时推送消息的示例
2019/02/20 Python
使用Django开发简单接口实现文章增删改查
2019/05/09 Python
python绘制评估优化算法性能的测试函数
2019/06/25 Python
对Python获取屏幕截图的4种方法详解
2019/08/27 Python
Python函数中的可变长参数详解
2019/09/12 Python
Python抓包并解析json爬虫的完整实例代码
2020/11/03 Python
欧舒丹澳洲版:L’OCCITANE
2017/07/17 全球购物
民族团结先进个人材料
2014/02/05 职场文书
春节联欢晚会主持词
2014/03/24 职场文书
《金孔雀轻轻跳》教学反思
2014/04/20 职场文书
以幸福为主题的活动方案
2014/08/22 职场文书
群众路线教育实践活动学习笔记
2014/11/05 职场文书
幼儿园大班个人总结
2015/02/28 职场文书
python 解决微分方程的操作(数值解法)
2021/05/26 Python
mysql left join快速转inner join的过程
2021/06/30 MySQL