码迷,mamicode.com
首页 > Web开发 > 详细

json与pickle模块

时间:2018-06-20 15:44:32      阅读:183      评论:0      收藏:0      [点我收藏+]

标签:模块   不同   关系   优点   的区别   对应关系   支持   type   text   

Python-19

1. json与pickle模块

什么是序列化和反序列化

  • 序列化:是将内存中的数据结构,转换成一种中间格式,将转化后的中间格式存储到硬盘,或者基于网络传输
  • 反序列化:是将硬盘中或者网路中传过来的中间格式,转换成内存中的数据结构

2. 序列化和反序列化有什么用

  • 将状态通过中间格式存储到硬盘,可以保存程序的运行状态
  • 数据可以跨平台交互,不同的编程语言,通过序列化成中间格式就可以互相交互
  • 存到硬盘的文本文件都是字符串,再次使用时,需要将硬盘中的数据转化成以前的数据类型状态

3. json与pickle模块的区别

json

  • 优点:jison具有跨平台性,所有编程语言都能转成json格式
  • 缺点:只能支持python的部分数据类型

pickle

  • 优点:支持python的所有数据了理性
  • 缺点:pickle只能识别python,不能跨平台

③ JSON类型和Python类型的对应关系

技术分享图片

4. json的的序列化

json.dumps(内存的数据)

技术分享图片

  • 说明:json不能识别单引号,只能使用双引号,因此而,json序列化的过程中会把单引号转成双引号
# 导入json模块
import json
# 内存中数据
dic={‘name‘:‘xut‘,‘age‘:18,‘sex‘:‘male‘}
# json序列化:内存中的数据类型---->json中间格式
json_str=json.dumps(dic)
# print(json_str,type(json_str))
# 将序列化中间格式写到文件
with open(r‘db.json‘,‘wt‘,encoding=‘utf-8‘) as f:
    f.write(json_str)

技术分享图片

json.dump(内存中数据对象,文件))

  • json.dump可以将上面的两步进行合并
import json
dic={‘name‘:‘xut‘,‘age‘:18,‘sex‘:‘male‘}
with open(r‘db.json‘,‘wt‘,encoding=‘utf-8‘) as f:
    json.dump(dic,f)

③ 总结

  • 序列化不同的数据类型,就写到不同的文件中

5. json的反序列化

json.loads(文件中的中间格式)

技术分享图片

json与pickle模块

标签:模块   不同   关系   优点   的区别   对应关系   支持   type   text   

原文地址:https://www.cnblogs.com/itone/p/9203895.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!