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网络编程学习笔记(五):socket的一些补充
Jun 09 Python
wxPython学习之主框架实例
Sep 28 Python
python使用xmlrpclib模块实现对百度google的ping功能
Jun 02 Python
Python简单生成随机姓名的方法示例
Dec 27 Python
Pytorch卷积层手动初始化权值的实例
Aug 17 Python
window环境pip切换国内源(pip安装异常缓慢的问题)
Dec 31 Python
python将图片转base64,实现前端显示
Jan 09 Python
Python 解决火狐浏览器不弹出下载框直接下载的问题
Mar 09 Python
Python实现弹球小游戏
Aug 01 Python
Python datetime 如何处理时区信息
Sep 02 Python
Pandas DataFrame求差集的示例代码
Dec 13 Python
python链表类中获取元素实例方法
Feb 23 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 连接mysql连接被重置的解决方法
2011/02/15 PHP
基于php实现长连接的方法与注意事项的问题
2013/05/10 PHP
解析php 版获取重定向后的地址(代码)
2013/06/26 PHP
php下获取http状态的实现代码
2014/05/09 PHP
php简单获取复选框值的方法
2016/05/11 PHP
Laravel框架运行出错提示RuntimeException No application encryption key has been specified.解决方法
2019/04/02 PHP
JavaScript 判断指定字符串是否为有效数字
2010/05/11 Javascript
js 实现复制到粘贴板的功能代码
2010/05/13 Javascript
JavaScript高级程序设计 事件学习笔记
2011/09/10 Javascript
为JS扩展Array.prototype.indexOf引发的问题探讨及解决
2013/04/24 Javascript
JavaScript中奇葩的假值示例应用
2014/03/11 Javascript
原生javascript实现Tab选项卡切换功能
2015/01/12 Javascript
jquery图片滚动放大代码分享(1)
2015/08/25 Javascript
浅析nodejs实现Websocket的数据接收与发送
2015/11/19 NodeJs
js控件Kindeditor实现图片自动上传功能
2020/07/20 Javascript
js注入 黑客之路必备!
2016/09/14 Javascript
详解vue模拟加载更多功能(数据追加)
2017/06/23 Javascript
js es6系列教程 - 基于new.target属性与es5改造es6的类语法
2017/09/02 Javascript
完美解决手机网页中输入框被输入法遮挡的问题
2017/12/19 Javascript
Vue.js中对css的操作(修改)具体方式详解
2018/10/30 Javascript
vue 中Virtual Dom被创建的方法
2019/04/15 Javascript
利用d3.js制作连线动画图与编辑器的方法实例
2019/09/05 Javascript
在vue中实现禁止屏幕滚动,禁止屏幕滑动
2020/07/22 Javascript
Python程序员鲜为人知但你应该知道的17个问题
2014/06/04 Python
使用Python解析JSON数据的基本方法
2015/10/15 Python
Windows环境下python环境安装使用图文教程
2018/03/13 Python
解读python如何实现决策树算法
2018/10/11 Python
python打印n位数“水仙花数”(实例代码)
2019/12/25 Python
python3.6.5基于kerberos认证的hive和hdfs连接调用方式
2020/06/06 Python
python一些性能分析的技巧
2020/08/30 Python
Python爬虫破解登陆哔哩哔哩的方法
2020/11/17 Python
python 如何把docker-compose.yaml导入到数据库相关条目里
2021/01/15 Python
公司管理建议书范文
2014/03/12 职场文书
职场干货:简历中的自我评价应该这样写!
2019/05/06 职场文书
Python获取指定日期是"星期几"的6种方法
2022/03/13 Python
vue 给数组添加新对象并赋值
2022/04/20 Vue.js