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 流程控制实例代码
Sep 25 Python
Python中实现两个字典(dict)合并的方法
Sep 23 Python
Python爬取三国演义的实现方法
Sep 12 Python
Python实现字符串反转的常用方法分析【4种方法】
Sep 30 Python
python3 pandas 读取MySQL数据和插入的实例
Apr 20 Python
解决pip install xxx报错SyntaxError: invalid syntax的问题
Nov 30 Python
Python3爬虫之自动查询天气并实现语音播报
Feb 21 Python
Python3.6实现带有简单界面的有道翻译小程序
Apr 16 Python
Python Django 简单分页的实现代码解析
Aug 21 Python
Python转换itertools.chain对象为数组的方法
Feb 07 Python
在PyCharm中实现添加快捷模块
Feb 12 Python
详解Python牛顿插值法
May 11 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使用str_replace实现输入框回车替换br的方法
2014/11/24 PHP
PHPCrawl爬虫库实现抓取酷狗歌单的方法示例
2017/12/21 PHP
php实现数组重复数字统计实例
2018/09/30 PHP
javascript 设置文本框中焦点的位置
2009/11/20 Javascript
node.js chat程序如何实现Ajax long-polling长链接刷新模式
2012/03/13 Javascript
jquery插件制作 手风琴Panel效果实现
2012/08/17 Javascript
js判断undefined变量类型使用typeof
2013/06/03 Javascript
JS判断客户端是手机还是PC的2个代码
2014/04/12 Javascript
javascript实现锁定网页、密码解锁效果(类似系统屏幕保护效果)
2014/08/15 Javascript
JS实现自定义简单网页软键盘效果代码
2015/11/05 Javascript
JavaScript结合Bootstrap仿微信后台多图文界面管理
2016/07/22 Javascript
js实现颜色阶梯渐变效果(Gradient算法)
2017/03/21 Javascript
JS中的三个循环小结
2017/06/20 Javascript
jQuery选择器之表单元素选择器详解
2017/09/19 jQuery
从源码看angular/material2 中 dialog模块的实现方法
2017/10/18 Javascript
详解如何用模块化的方式写vuejs
2017/12/16 Javascript
浅谈Vue网络请求之interceptors实际应用
2018/02/28 Javascript
微信小程序数据分析之自定义分析的实现
2018/08/17 Javascript
jQuery选择器之层次选择器用法实例分析
2019/02/19 jQuery
JavaScript单线程和任务队列原理解析
2020/02/04 Javascript
浅谈vue中$bus的使用和涉及到的问题
2020/07/28 Javascript
手动实现vue2.0的双向数据绑定原理详解
2021/02/06 Vue.js
pytorch 调整某一维度数据顺序的方法
2018/12/08 Python
python selenium firefox使用详解
2019/02/26 Python
Django model 中设置联合约束和联合索引的方法
2019/08/06 Python
python关闭占用端口方式
2019/12/17 Python
Python实现仿射密码的思路详解
2020/04/23 Python
HTML5 Canvas中使用用路径描画圆弧
2015/01/01 HTML / CSS
GNC健安喜官方海外旗舰店:美国著名保健品牌
2017/01/04 全球购物
精神文明单位申报材料
2014/05/02 职场文书
四风问题对照检查整改措施思想报告
2014/10/05 职场文书
爱心捐书倡议书
2015/04/27 职场文书
劳动仲裁撤诉申请书
2015/05/18 职场文书
交通事故赔偿起诉书
2015/05/20 职场文书
三国演义读书笔记
2015/06/25 职场文书
Go微服务项目配置文件的定义和读取示例详解
2022/06/21 Golang