python对象序列化和反序列化,python序列化的原理和作用

  python对象序列化和反序列化,python序列化的原理和作用

  大家好,本文主要是关于python对象序列化的介绍。有兴趣的同学过来看看,如果对你有帮助记得收藏。

  对象:这是一个抽象的概念,如列表元组字典集,这些都是对象。

  序列化:单程。目的:在磁盘上存储对象(即将对象转换成字节数据/字符数据)。

  这个过程是通过序列化的方法实现的。

  为什么需要序列化和反序列化这一操作呢?

  1.易于储存。序列化过程将文本信息转换为二进制数据流。信息很容易储存在硬盘里。需要读取文件时,可以从硬盘中读取数据,然后反序列化得到原始数据。Python程序在运行过程中获得了一些字符串、列表、字典等数据,想要长期保存,以便以后使用,而不是简单的放在内存中,断电就丢失数据。

  2.易于传输。当两个进程进行远程通信时,它们可以互相发送各种类型的数据。无论是什么类型的数据,都会以二进制序列的形式在网络上传输。发送方需要将这个对象转换成一个字节序列,可以在网络上传输。接收方需要将字节序列恢复为一个对象。

  两个模块实现序列化

  1.pickle模块

  Pickle模块实现基本的数据序列化和反序列化。通过pickle模块的序列化操作,我们可以将程序中运行的对象的信息保存到一个文件中永久保存;通过反序列化pickle模块,我们可以从文件中创建最后一个程序保存的对象。

  pickle模块中的四个方法:转储转储加载加载

  #dumps将对象序列化为字节数据。

  进口泡菜

  ls=[1,2,3]

  data=pickle.dumps(ls)

  数据

  b \ X80 \ x04 \ x95 \ x0b \ x00 \ x00 \ x00 \ x00 \ x00 \ x94(K \ x01K \ x02K \ x03e

  f=打开( a.txt ,mode=wb )

  f .写(数据)

  22

  f.close()

  f=打开( a.txt ,mode=rb )

  阅读()

  b \ X80 \ x04 \ x95 \ x0b \ x00 \ x00 \ x00 \ x00 \ x00 \ x94(K \ x01K \ x02K \ x03e

  f.close()

  #dump将对象序列化为字节数据,并将其保存到文件file。

  ls=[2,3,4]

  pickle.dump(ls,open(a.txt ,mode=wb ))

  f=打开( a.txt ,mode=rb )

  阅读()

  b \ X80 \ x04 \ x95 \ x0b \ x00 \ x00 \ x00 \ x00 \ x00 \ x94(K \ x02K \ x03K \ x04e

  #loads将字节数据反序列化为对象。

  f=打开( a.txt , rb )

  show=f.read()

  显示

  b \ X80 \ x04 \ x95 \ x0f \ x00 \ x00 \ x00 \ x00 \ x00]\ x94(K \ x01K \ x02K \ x03K \ x04K \ x05e

  show=pickle.loads(显示)

  显示

  [1, 2, 3, 4, 5]

  f.close()

  #load将文件中的字节数据反序列化为一个对象。

  pickle.load(open(a.txt , rb ))

  [1, 2, 3, 4, 5]

  2.json模块

  Json模块将对象序列化为字符数据,json模块有相同的dump dump load方法。注意:json模块一般用于序列化字典对象。

  #dumps方法

  导入json

  d={ 用户名 : 张三,年龄 :17}

  json.dumps(d)

  { 用户名 : 张三,年龄 : 17}

  s=json.dumps(d)

  f=打开( a.txt , wt )

  f .写

  34

  f.close()

  #loads方法

  f=打开( a.txt , rt )

  ss=f.read()

  悬浮物

  { 用户名 : 张三,年龄 : 17}

  json.loads(ss)

  { 用户名 : 张三,年龄 : 17}

  dd=json.loads(ss)

  截止日期(Deadline Date的缩写)

  { 用户名 : 张三,年龄 : 17}

  f.close()

  关于python的对象序列化的这篇文章到此为止。有关python的对象序列化的更多信息,请搜索热门IT软件开发工作室之前的文章或继续浏览下面的相关文章。希望大家以后多多支持热门IT软件开发工作室!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: