文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

序列化与反序列化

2023-01-31 00:18

关注

序列化(pickling)
  把变量从内存中变成可存储或传输的过程

反序列化(unpickling)
  把变量内容从序列化的对象重新读到内存里的过程

序列化&反序列化的意义
  在程序运行过程中,对象可在内存中被自由的修改
  一旦程序结束,对象所占内存会被系统回收,所做修改会全部丢失,要想在内存中将对象恢复到修改后状态,就只能重新运行程序进行修改
  通过序列化和反序列化,就可把对象某一时刻在内存中的内容状态同步到磁盘,或通过网络传输到别的机器上最为一个记录
  当想在内存中恢复该对象在那一时刻的状态时,就可通过将磁盘或其他机器上记录的对象状态反序列化至内存,而无需重新运行程序

实例

import pickle##引入pickle模块
    
d = dict(name='Bob', age=20, score=88)
bytes = pickle.dumps(d) ##pickle.dumps()方法把任意对象序列化成一个bytes ##bytes -> b'\x80\x03}q\x00(X\x03\x00\x00\x00ageq\x01K\x14X\x05\x00\x00\x00scoreq\x02KXX\x04\x00\x00\x00nameq\x03X\x03\x00\x00\x00Bobq\x04u.'
d1 = pickle.loads(bytes) ##pickle.loads()方法把bytes反序列化出对象 print(d1) ################################################## import pickle d = dict(name='Bob', age=20, score=88) f = open('dump.txt', 'wb') pickle.dump(d, f) ##直接把对象序列化后写入一个file-like Object f.close() f1 = open('dump.txt', 'rb') d1 = pickle.load(f) ##用pickle.load()方法从一个file-like Object中直接反序列化出对象 f1.close() print(d1)

 

注意:

  不同版本的Python彼此都不兼容,只能用Pickle保存那些不重要的数据,不能成功地反序列化也没关系
  反序列化后的对象是一个新的对象

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯