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编写检测数据库SA用户的方法
Jul 11 Python
利用Python的Flask框架来构建一个简单的数字商品支付解决方案
Mar 31 Python
python正则表达式之作业计算器
Mar 18 Python
Python实现批量更换指定目录下文件扩展名的方法
Sep 19 Python
Python基于回溯法子集树模板解决最佳作业调度问题示例
Sep 08 Python
分析python动态规划的递归、非递归实现
Mar 04 Python
java中两个byte数组实现合并的示例
May 09 Python
mac下如何将python2.7改为python3
Jul 13 Python
对python中字典keys,values,items的使用详解
Feb 03 Python
python 随机森林算法及其优化详解
Jul 11 Python
python程序输出无内容的解决方式
Apr 09 Python
Python日志模块logging用法
Jun 05 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 array_map()数组函数使用说明
2011/07/12 PHP
两千行代码的PHP学习笔记汇总
2014/10/05 PHP
浅析php适配器模式(Adapter)
2014/11/25 PHP
php计算多维数组中所有值总和的方法
2015/06/24 PHP
laravel框架上传图片实现实时预览功能
2019/10/14 PHP
利用javascript/jquery对上传文件格式过滤的方法
2009/07/25 Javascript
解析DHTML,JavaScript,DOM,BOM以及WEB标准的描述
2013/06/19 Javascript
JavaScript字符串插入、删除、替换函数使用示例
2013/07/25 Javascript
一个Action如何调用两个不同的方法
2014/05/22 Javascript
JavaScript操作Oracle数据库示例
2015/03/06 Javascript
基于jQuery实现带动画效果超炫酷的弹出对话框(附源码下载)
2016/02/22 Javascript
JS控制TreeView的结点选择
2016/11/11 Javascript
关于JS Lodop打印插件打印Bootstrap样式错乱问题的解决方案
2016/12/23 Javascript
详解Nodejs 通过 fs.createWriteStream 保存文件
2017/10/10 NodeJs
jQuery获取所有父级元素及同级元素及子元素的方法(推荐)
2018/01/21 jQuery
微信小程序:数据存储、传值、取值详解
2019/05/07 Javascript
利用node 判断打开的是文件 还是 文件夹的实例
2019/06/10 Javascript
Nautil 中使用双向数据绑定的实现
2019/10/02 Javascript
vue 组件间的通信之子组件向父组件传值的方式
2020/07/29 Javascript
一篇文章带你搞懂Vue虚拟Dom与diff算法
2020/08/25 Javascript
[01:02:38]DOTA2-DPC中国联赛定级赛 LBZS vs Phoenix BO3第二场 1月10日
2021/03/11 DOTA
Python Web框架Pylons中使用MongoDB的例子
2013/12/03 Python
Python实现的微信红包提醒功能示例
2019/08/22 Python
python爬虫中多线程的使用详解
2019/09/23 Python
使用python客户端访问impala的操作方式
2020/03/28 Python
keras实现调用自己训练的模型,并去掉全连接层
2020/06/09 Python
2014年自我评价
2014/01/04 职场文书
高中体育教学反思
2014/01/29 职场文书
中学教师自我鉴定
2014/02/07 职场文书
小学生十佳少年事迹材料
2014/08/20 职场文书
公司授权委托书格式范文
2014/10/02 职场文书
离婚答辩状怎么写
2015/05/22 职场文书
消防宣传语大全
2015/07/13 职场文书
redis三种高可用方式部署的实现
2021/05/11 Redis
pytorch 实现变分自动编码器的操作
2021/05/24 Python
解决pycharm安装scrapy DLL load failed:找不到指定的程序的问题
2021/06/08 Python