Skip to content

Latest commit

 

History

History
125 lines (76 loc) · 3.31 KB

6170-203868-000617 容器对象的腌制和存储.sy.md

File metadata and controls

125 lines (76 loc) · 3.31 KB
show version enable_checker
step
1.0
true

字典类型

回忆

  • 这些就是我们接触到的各种容器
  • 但是这些东西如何存储到文件当中呢?
  • 我需要逐个定制序列化么?🤔

回忆序列化

图片描述

  • 这是给str 和 单字节整型数字pack打包的过程
  • 那如何解包呢?

解包

  • 得到变量的列表

图片描述

  • 把名字字符串解码回来

图片描述

  • 把年龄解码出来

图片描述

  • 但是容器的机构是很复杂的
  • 这么做太麻烦了
  • 有什么好方法么?🤔

腌制

  • 有这么一个包叫做pickle
  • 他可以帮助我们存储容器
  • pickle什么意思呢?

图片描述

腌咸菜

  • 这个新鲜的芥菜大头菜水分太多
  • 得腌制

图片描述

  • 一般就是用糖、盐、酒、醋之类的东西
  • 把这个菜里面的水分置换出来
  • 菜就不那么容易腐烂了
  • 就能留得住了
  • 我们的容器也是如此
  • 腌好了,里面存的数据就能留住了

图片描述

  • 具体怎么腌制呢?

查看帮助

图片描述

  • pickle 可以把对象序列化成字节流
  • pickle 还可以把字节流反序列化成对象

试试

图片描述

  • 首先准备基础数据

图片描述

  • 然后进行序列化

图片描述

  • 那如何解压呢?

解压

图片描述

图片描述

  • 如果要把容器存在一个文件里呢?

序列化写到文件

图片描述

图片描述

图片描述

读取序列化文件

图片描述

图片描述

图片描述

  • 中文也可以么?

中文

图片描述

图片描述

  • utf-8编码的字符是没有问题的

总结

  • 这次我们把容器序列化了
  • 并且存储在文件当中
  • 这些容器是重要的数据结构
  • 数据结构在程序流程里可以发挥重要的作用
  • 什么是程序流程呢?🤔
  • 下次再说👋