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实现从web抓取文档的方法
Sep 26 Python
python 专题九 Mysql数据库编程基础知识
Mar 16 Python
python 网络编程详解及简单实例
Apr 25 Python
matplotlib绘制符合论文要求的图片实例(必看篇)
Jun 02 Python
Python元组操作实例分析【创建、赋值、更新、删除等】
Jul 24 Python
python交互式图形编程实例(二)
Nov 17 Python
matplotlib绘制动画代码示例
Jan 02 Python
Python实现Dijkstra算法
Oct 17 Python
python 通过文件夹导入包的操作
Jun 01 Python
Python生成器generator原理及用法解析
Jul 20 Python
最新PyCharm从安装到PyCharm永久激活再到PyCharm官方中文汉化详细教程
Nov 17 Python
python实现马丁策略回测3000只股票的实例代码
Jan 22 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 验证码制作(网树注释思想)
2009/07/20 PHP
本地机apache配置基于域名的虚拟主机详解
2013/08/10 PHP
Yii2中简单的场景使用介绍
2017/06/02 PHP
PHP的HTTP客户端Guzzle简单使用方法分析
2019/10/30 PHP
php使用gearman进行任务分发操作实例详解
2020/02/26 PHP
表单内同名元素的控制
2006/11/22 Javascript
Google韩国首页图标动画效果
2007/08/26 Javascript
项目实践之javascript技巧
2007/12/06 Javascript
jQuery 各种浏览器下获得日期区别
2008/12/22 Javascript
自己实现string的substring方法 人民币小写转大写,数字反转,正则优化
2012/09/02 Javascript
js实现鼠标悬停图片上时滚动文字说明的方法
2015/02/17 Javascript
jQuery文件上传控件 Uploadify 详解
2016/06/20 Javascript
微信小程序 数组中的push与concat的区别
2017/01/05 Javascript
你不知道的 javascript【推荐】
2017/01/08 Javascript
JS检测是否可以访问公网服务器功能代码
2017/06/19 Javascript
axios拦截设置和错误处理方法
2018/03/05 Javascript
JS和Canvas实现图片的预览压缩和上传功能
2018/03/30 Javascript
学习Vue组件实例
2018/04/28 Javascript
vue实现分页的三种效果
2020/06/23 Javascript
解决python 自动安装缺少模块的问题
2018/10/22 Python
Python3.5 Pandas模块之Series用法实例分析
2019/04/23 Python
使用PyQt的QLabel组件实现选定目标框功能的方法示例
2020/05/19 Python
详解numpy.ndarray.reshape()函数的参数问题
2020/10/13 Python
Python Pandas list列表数据列拆分成多行的方法实现
2020/12/14 Python
CSS3 倾斜的网页图片库实例教程
2009/11/14 HTML / CSS
美国最大的在线寄售和旧货店:Swap.com
2018/08/27 全球购物
护士进修自我鉴定
2014/02/07 职场文书
幼儿园父亲节活动方案
2014/03/11 职场文书
营销总经理岗位职责范本
2014/09/02 职场文书
永远跟党走演讲稿
2014/09/12 职场文书
2016秋季田径运动会广播稿
2015/12/21 职场文书
创业计划书之餐饮馄饨店
2019/07/18 职场文书
MySQL InnoDB ReplicaSet(副本集)简单介绍
2021/04/24 MySQL
聊一聊python常用的编程模块
2021/05/14 Python
用python修改excel表某一列内容的操作方法
2021/06/11 Python
如何解决goland,idea全局搜索快捷键失效问题
2022/04/03 Golang