Python标准库json模块和pickle模块使用详解

 更新时间:2020年03月10日 10:47:52   作者:新兵蛋子  
这篇文章主要介绍了Python标准库json模块和pickle模块使用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

将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类型。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • 如何用GAN训练自己的数据生成新的图片

    如何用GAN训练自己的数据生成新的图片

    这篇文章主要介绍了如何用GAN训练自己的数据生成新的图片问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-03-03
  • Python数据可视化编程通过Matplotlib创建散点图代码示例

    Python数据可视化编程通过Matplotlib创建散点图代码示例

    这篇文章主要介绍了Python数据可视化编程通过Matplotlib创建散点图实例,具有一定借鉴价值,需要的朋友可以参考下。
    2017-12-12
  • Python字典 dict几种遍历方式

    Python字典 dict几种遍历方式

    这篇文章主要给大家分享的是Python字典 dict几种遍历方式,文章主要介绍使用 for key in dict遍历字典、使用for key in dict.keys () 遍历字典的键等内容,需要的朋友可以参考一下,希望对你有所帮助
    2021-11-11
  • 使用PyQt4 设置TextEdit背景的方法

    使用PyQt4 设置TextEdit背景的方法

    今天小编就为大家分享一篇使用PyQt4 设置TextEdit背景的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-06-06
  • Python深度学习之使用Albumentations对图像做增强

    Python深度学习之使用Albumentations对图像做增强

    诸如RandomCrop和CenterCrop之类的某些增强功能可能会变换图像,使其不包含所有原始边界框. 本示例说明如何使用名为RandomSizedBBoxSafeCrop的变换来裁剪图像的一部分,但保留原始图像的所有边界框,需要的朋友可以参考下
    2021-05-05
  • python 含子图的gif生成时内存溢出的方法

    python 含子图的gif生成时内存溢出的方法

    今天小编就为大家分享一篇python 含子图的gif生成时内存溢出的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-07-07
  • python爬虫 urllib模块发起post请求过程解析

    python爬虫 urllib模块发起post请求过程解析

    这篇文章主要介绍了python爬虫 urllib模块发起post请求过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-08-08
  • Python GUI Tkinter简单实现个性签名设计

    Python GUI Tkinter简单实现个性签名设计

    这篇文章主要为大家详细介绍了Python GUI Tkinter简单实现个性签名设计,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-06-06
  • PyQt4编程之让状态栏显示信息的方法

    PyQt4编程之让状态栏显示信息的方法

    今天小编就为大家分享一篇PyQt4编程之让状态栏显示信息的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-06-06
  • python代码实现学生信息管理系统

    python代码实现学生信息管理系统

    这篇文章主要为大家详细介绍了python代码实现学生信息管理系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-05-05

最新评论