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 相关文章推荐
Linux下python3.6.1环境配置教程
Sep 26 Python
python使用selenium登录QQ邮箱(附带滑动解锁)
Jan 23 Python
python实现整数的二进制循环移位
Mar 08 Python
python2 中 unicode 和 str 之间的转换及与python3 str 的区别
Jul 25 Python
python爬虫爬取监控教务系统的思路详解
Jan 08 Python
python 实现两个线程交替执行
May 02 Python
使用Python pip怎么升级pip
Aug 11 Python
Python自动巡检H3C交换机实现过程解析
Aug 14 Python
Python爬虫之Selenium下拉框处理的实现
Dec 04 Python
Python3+SQLAlchemy+Sqlite3实现ORM教程
Feb 16 Python
python 命令行传参方法总结
May 25 Python
Python Pandas pandas.read_sql函数实例用法
Jun 21 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下10件你也许并不了解的事情
2008/09/11 PHP
php 多个submit提交表单 处理方法
2009/07/07 PHP
thinkphp控制器调度使用示例
2014/02/24 PHP
关于php支持分块与断点续传文件下载功能代码
2014/05/09 PHP
兼容PHP和Java的des加密解密代码分享
2014/06/26 PHP
Laravel-添加后台模板AdminLte的实现方法
2019/10/08 PHP
JavaScript与C# Windows应用程序交互方法
2007/06/29 Javascript
web网页按比例显示图片实现原理及js代码
2013/08/09 Javascript
jquery实现美观的导航菜单鼠标提示特效代码
2015/09/06 Javascript
Bootstrap3学习笔记(三)之表格
2016/05/20 Javascript
Angular ng-repeat指令实例以及扩展部分
2016/12/26 Javascript
基于cookie实现zTree树刷新后展开状态不变
2017/02/28 Javascript
H5图片压缩与上传实例
2017/04/21 Javascript
Node.js利用debug模块打印出调试日志的方法
2017/04/25 Javascript
NodeJS搭建HTTP服务器的实现步骤
2018/10/12 NodeJs
Node.js中的不安全跳转如何防御详解
2018/10/21 Javascript
vue中使用mxgraph的方法实例代码详解
2019/05/17 Javascript
手写Vue2.0 数据劫持的示例
2021/03/04 Vue.js
[48:20]OpTic vs Serenity 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
python实现udp数据报传输的方法
2014/09/26 Python
Python装饰器的函数式编程详解
2015/02/27 Python
python获取图片颜色信息的方法
2015/03/18 Python
python opencv之分水岭算法示例
2018/02/24 Python
pandas.dataframe中根据条件获取元素所在的位置方法(索引)
2018/06/07 Python
Python wxPython库消息对话框MessageDialog用法示例
2018/09/03 Python
CSS3图片旋转特效(360/60/-360度)
2013/10/10 HTML / CSS
一篇文章带你学习CSS3图片边框
2020/11/04 HTML / CSS
Traffic People官网:女式花裙、上衣和连身裤
2020/10/12 全球购物
潘多拉珠宝俄罗斯官方网上商店:PANDORA俄罗斯
2020/09/22 全球购物
机电专业毕业生推荐信
2013/11/10 职场文书
总经理助理岗位职责范本
2014/07/20 职场文书
学习作风建设心得体会
2014/10/22 职场文书
作文批改评语
2014/12/25 职场文书
车间统计员岗位职责
2015/04/14 职场文书
垂直极限观后感
2015/06/08 职场文书
解决Redis启动警告问题
2022/02/24 Redis