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 相关文章推荐
Python3.0与2.X版本的区别实例分析
Aug 25 Python
python自定义解析简单xml格式文件的方法
May 11 Python
详解Python实现多进程异步事件驱动引擎
Aug 25 Python
Win7 64位下python3.6.5安装配置图文教程
Oct 27 Python
python实现电脑自动关机
Jun 20 Python
Python3爬虫教程之利用Python实现发送天气预报邮件
Dec 16 Python
Windows下pycharm创建Django 项目(虚拟环境)过程解析
Sep 16 Python
Python有参函数使用代码实例
Jan 06 Python
Python读写Excel表格的方法
Mar 02 Python
python设置 matplotlib 正确显示中文的四种方式
May 10 Python
Python包管理工具pip的15 个使用小技巧
May 17 Python
Anaconda安装pytorch及配置PyCharm 2021环境
Jun 04 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
DedeCms模板安装/制作概述
2007/03/11 PHP
swfupload 多文件上传实现代码
2008/08/27 PHP
php radio 单选框获取与保持值的实现代码
2010/05/15 PHP
那些年一起学习的PHP(三)
2012/03/22 PHP
浅析php中如何在有限的内存中读取大文件
2013/07/02 PHP
JavaScript加密解密7种方法总结分析
2007/10/07 Javascript
JavaScript入门教程(6) Window窗口对象
2009/01/31 Javascript
TextArea设置MaxLength属性最大输入值的js代码
2012/12/21 Javascript
javascript模拟实现C# String.format函数功能代码
2013/11/25 Javascript
JS图片无缝、平滑滚动代码
2014/03/11 Javascript
ExtJS4给Combobox设置列表中的默认值示例
2014/05/02 Javascript
jquery点击缩略图切换视频播放特效代码分享
2015/09/15 Javascript
探讨JavaScript标签位置的存放与功能有无关系
2016/01/15 Javascript
整理AngularJS框架使用过程当中的一些性能优化要点
2016/03/05 Javascript
基于Bootstrap和jQuery构建前端分页工具实例代码
2016/11/23 Javascript
js和jquery中获取非行间样式
2017/05/05 jQuery
JQuery实现table中tr上移下移的示例(超简单)
2018/01/08 jQuery
JavaScript正则表达式函数总结(常用)
2018/02/22 Javascript
vue里的data要用return返回的原因浅析
2019/05/28 Javascript
ES6 Class中实现私有属性的一些方法总结
2019/07/08 Javascript
基于node+vue实现简单的WebSocket聊天功能
2020/02/01 Javascript
微信小程序自定义顶部组件customHeader的示例代码
2020/06/03 Javascript
windows下Virtualenvwrapper安装教程
2017/12/13 Python
Python实现全排列的打印
2018/08/18 Python
python使用Matplotlib画条形图
2020/03/25 Python
如何通过50行Python代码获取公众号全部文章
2019/07/12 Python
利用python-docx模块写批量生日邀请函
2019/08/26 Python
浅谈在django中使用redirect重定向数据传输的问题
2020/03/13 Python
英国最好的包装供应商:Priory Direct
2019/12/17 全球购物
小学生倡议书范文
2014/05/13 职场文书
2014乡镇机关党员个人对照检查材料思想汇报
2014/10/09 职场文书
学校政风行风评议心得体会
2014/10/21 职场文书
小学班级口号大全
2015/12/25 职场文书
python-for x in range的用法(注意要点、细节)
2021/05/10 Python
nginx lua 操作 mysql
2022/05/15 Servers
vue el-table实现递归嵌套的示例代码
2022/08/14 Vue.js