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脚本实现统计日志文件中的ip访问次数代码分享
Aug 06 Python
Python自然语言处理 NLTK 库用法入门教程【经典】
Jun 26 Python
Python退火算法在高次方程的应用
Jul 26 Python
python之Flask实现简单登录功能的示例代码
Dec 24 Python
Python实现定时自动关闭的tkinter窗口方法
Feb 16 Python
详解django2中关于时间处理策略
Mar 06 Python
pywinauto自动化操作记事本
Aug 26 Python
python解析yaml文件过程详解
Aug 30 Python
python3获取文件中url内容并下载代码实例
Dec 27 Python
python批量修改文件名的示例
Sep 27 Python
python 动态绘制爱心的示例
Sep 27 Python
Python 统计序列中元素的出现频度
Apr 26 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
phpMyAdmin链接MySql错误 个人解决方案
2009/12/28 PHP
PHP学习笔记 IIS7下安装配置php环境
2012/10/29 PHP
php结合curl实现多线程抓取
2015/07/09 PHP
PHP接收json 并将接收数据插入数据库的实现代码
2015/12/01 PHP
PHP实现根据数组某个键值大小进行排序的方法
2018/03/13 PHP
js实现的复制兼容chrome和IE
2014/04/03 Javascript
详解JavaScript的回调函数
2015/11/20 Javascript
利用angularjs1.4制作的简易滑动门效果
2017/02/28 Javascript
Angular实现响应式表单
2017/08/04 Javascript
详解nodejs通过响应回写的方式渲染页面资源
2018/04/07 NodeJs
浅谈Vue初学之props的驼峰命名
2018/07/19 Javascript
ES6 系列之 WeakMap的使用示例
2018/08/06 Javascript
nuxt配置通过指定IP和端口访问的实现
2020/01/08 Javascript
python抓取京东价格分析京东商品价格走势
2014/01/09 Python
Python django实现简单的邮件系统发送邮件功能
2017/07/14 Python
python 将字符串转换成字典dict的各种方式总结
2018/03/23 Python
Python实现定时精度可调节的定时器
2018/04/15 Python
python 脚本生成随机 字母 + 数字密码功能
2018/05/26 Python
python爬取网页内容转换为PDF文件
2020/07/28 Python
解决Python plt.savefig 保存图片时一片空白的问题
2019/01/10 Python
Python中正则表达式的用法总结
2019/02/22 Python
Python 多线程共享变量的实现示例
2020/04/17 Python
Python键鼠操作自动化库PyAutoGUI简介(小结)
2020/05/17 Python
python中怎么表示空值
2020/06/19 Python
HTML5使用drawImage()方法绘制图像
2014/06/23 HTML / CSS
Richards网上商店:当代时尚,遍布巴西
2019/11/03 全球购物
Kingsoft金山公司C/C++笔试题
2016/05/10 面试题
前厅收银主管岗位职责
2014/02/04 职场文书
个人自我剖析材料
2014/02/07 职场文书
测绘专业大学生职业生涯规划书
2014/02/10 职场文书
给学校的建议书
2014/03/12 职场文书
学生保证书范文
2014/04/28 职场文书
运动会口号16字
2014/06/07 职场文书
2014年财政工作总结
2014/12/10 职场文书
物业接待员岗位职责
2015/04/15 职场文书
Java 将PPT幻灯片转为HTML文件的实现思路
2021/06/11 Java/Android