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实现)
Dec 09 Python
Python网络编程基于多线程实现多用户全双工聊天功能示例
Apr 10 Python
python自动登录12306并自动点击验证码完成登录的实现源代码
Apr 25 Python
Python实现数据可视化看如何监控你的爬虫状态【推荐】
Aug 10 Python
10 行 Python 代码教你自动发送短信(不想回复工作邮件妙招)
Oct 11 Python
python 用for循环实现1~n求和的实例
Feb 01 Python
Python函数中不定长参数的写法
Feb 13 Python
python使用Plotly绘图工具绘制柱状图
Apr 01 Python
解决python文件双击运行秒退的问题
Jun 24 Python
python二维键值数组生成转json的例子
Dec 06 Python
大数据分析用java还是Python
Jul 06 Python
PyQt5 显示超清高分辨率图片的方法
Apr 11 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
解析yii数据库的增删查改
2013/06/20 PHP
浅析关于PHP位运算的简单权限设计
2013/06/30 PHP
不使用php api函数实现数组的交换排序示例
2014/04/13 PHP
PHP获取当前日期和时间及格式化方法参数
2015/05/11 PHP
php检测图片主要颜色的方法
2015/07/01 PHP
PHP  实现等比压缩图片尺寸和大小实例代码
2016/10/08 PHP
收集的网上用的ajax之chat.js文件
2007/04/08 Javascript
Jquery下attr和removeAttr的使用方法
2010/12/28 Javascript
高性能Javascript笔记 数据的存储与访问性能优化
2012/08/02 Javascript
14款NodeJS Web框架推荐
2014/07/11 NodeJs
了不起的node.js读书笔记之mongodb数据库交互
2014/12/22 Javascript
详解EasyUi控件中的Datagrid
2017/08/23 Javascript
vue调试工具vue-devtools安装及使用方法
2018/11/07 Javascript
点击按钮弹出模态框的一系列操作代码实例
2019/03/29 Javascript
vue动态子组件的两种实现方式
2019/09/01 Javascript
vue使用高德地图点击下钻上浮效果的实现思路
2019/10/12 Javascript
微信小程序 wx:for 与 wx:for-items 与 wx:key的正确用法
2020/05/19 Javascript
python模块restful使用方法实例
2013/12/10 Python
python实现封装得到virustotal扫描结果
2014/10/05 Python
Python with用法实例
2015/04/14 Python
Python实现的中国剩余定理算法示例
2017/08/05 Python
Python打印输出数组中全部元素
2018/03/13 Python
Linux(Redhat)安装python3.6虚拟环境(推荐)
2018/05/05 Python
Keras 加载已经训练好的模型进行预测操作
2020/06/17 Python
css3和jquery实现自定义checkbox和radiobox组件
2014/04/22 HTML / CSS
使用phonegap获取设备的一些信息方法
2017/03/31 HTML / CSS
韩国知名的家庭购物网站:CJmall
2016/08/01 全球购物
Hunter Boots美国官方网站:赫特威灵顿雨靴
2018/06/16 全球购物
编写类String 的构造函数、析构函数和赋值函数
2012/09/09 面试题
Python如何实现单例模式
2016/06/03 面试题
艺术专业大学生自我评价
2013/09/22 职场文书
创业计划书中要认真思考的问题
2013/12/28 职场文书
2014年信访工作总结
2014/11/17 职场文书
民政工作个人总结
2015/02/28 职场文书
导游词之五台山
2019/10/11 职场文书
详解PyTorch模型保存与加载
2022/04/28 Python