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多线程、异步+多进程爬虫实现代码
Feb 17 Python
你所不知道的Python奇技淫巧13招【实用】
Dec 14 Python
python 统计代码行数简单实例
May 04 Python
python基础知识(一)变量与简单数据类型详解
Apr 17 Python
PyQt5固定窗口大小的方法
Jun 18 Python
pytorch中的embedding词向量的使用方法
Aug 18 Python
Linux下通过python获取本机ip方法示例
Sep 06 Python
Django admin禁用编辑链接和添加删除操作详解
Nov 15 Python
用Python去除图像的黑色或白色背景实例
Dec 12 Python
使用python创建Excel工作簿及工作表过程图解
May 27 Python
浅析Python 简单工厂模式和工厂方法模式的优缺点
Jul 13 Python
PYTHON InceptionV3模型的复现详解
May 06 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
浅谈电磁辐射对健康的影响
2021/03/01 无线电
不用iconv库的gb2312与utf-8的互换函数
2006/10/09 PHP
用PHP发电子邮件
2006/10/09 PHP
php smarty模版引擎中变量操作符及使用方法
2009/12/11 PHP
php获取服务器信息的实现代码
2013/02/04 PHP
解析php中如何直接执行SHELL
2013/06/28 PHP
php微信公众平台配置接口开发程序
2016/09/22 PHP
YII分模块加载路由的实现方法
2018/10/01 PHP
javascript 面向对象编程  function是方法(函数)
2009/09/17 Javascript
Jquery 插件学习实例1 插件制作说明与tableUI优化
2010/04/02 Javascript
Json字符串转换为JS对象的高效方法实例
2013/05/01 Javascript
js实现背景图片感应鼠标变化的方法
2015/02/28 Javascript
jQuery插件ImageDrawer.js实现动态绘制图片动画(附源码下载)
2016/02/25 Javascript
全面解析JavaScript里的循环方法之forEach,for-in,for-of
2020/04/20 Javascript
jquery模拟多级复选框效果的简单实例
2016/06/08 Javascript
适用于手机端的jQuery图片滑块动画
2016/12/09 Javascript
如何获取TypeScript的声明文件.d.ts
2018/05/01 Javascript
详解Vue开发微信H5微信分享签名失败问题解决方案
2018/08/09 Javascript
快速了解Node中的Stream流是什么
2019/02/13 Javascript
详解一个小实例理解js原型和继承
2019/04/24 Javascript
javascript中的闭包概念与用法实践分析
2019/07/26 Javascript
前端如何实现动画过渡效果
2021/02/05 Javascript
python实现扫描日志关键字的示例
2018/04/28 Python
python pandas 对时间序列文件处理的实例
2018/06/22 Python
使用50行Python代码从零开始实现一个AI平衡小游戏
2018/11/21 Python
python导入模块交叉引用的方法
2019/01/19 Python
关于Python字符串显示u...的解决方式
2020/03/06 Python
Python多线程正确用法实例解析
2020/05/30 Python
Python QT组件库qtwidgets的使用
2020/11/02 Python
您附近的水疗和健康场所:Spafinder(美国)
2019/07/05 全球购物
写好求职应聘自荐信的三部曲
2013/09/21 职场文书
计算机学生求职信范文
2014/01/30 职场文书
群众路线自我剖析材料
2014/10/08 职场文书
教你快速构建一个基于nginx的web集群项目
2021/11/27 Servers
前端vue+express实现文件的上传下载示例
2022/02/18 Vue.js
HTML中的表格元素介绍
2022/02/28 HTML / CSS