总结
1.什么是序列化与反序列化?
-
序列化:将内存中的数据转换为字节序列保存到文件;
-
反序列化:将字节序列的文件中的内容恢复到内存中;
2.pickle模块
(1)如何序列化写入文件:
-
导入pickle模块;
-
初始化数据结构;
-
通过
with open
上下文管理器的方式打开文件(文件操作模式为只写二进制模式); -
然后使用pickle模块中的dump方法对数据结构序列化,并且将之写入文件;
(2)读取文件序列化内容
-
通过
with open
上下文管理器的方式打开文件(文件操作模式为只读二进制模式); -
使用pickle模块的load方法将文件内序列化好的对象加载到内存中,将之还原;
(3)序列化Python对象
-
dumps方法
:直接序列化Python对象,对象序列化后以 bytes 对象返回,不写入文件; -
loads方法
:直接把序列化好对象进行还原,并返回其重组后的对象;
(4)序列化函数还原
-
将序列化的函数写入文件,到另外一个模块中运行, 必须先在当前这模块声明这个函数;
-
因为序列化还原只会还原函数名,函数对象的语句块不会序列化;
3.Json模块
-
JSON是一种轻量级的数据交换格式;
-
使用 JSON 函数需要导入 json 模块;
-
json.dumps
:用于将 Python 对象编码成 JSON 字符串; -
json.loads
:用于将已编码的 JSON 字符串解码为 Python 对象,该函数返回 Python 字段的数据类型;
4.msgpack模块
-
是一个基于二进制高效的对象化序列类库,可用于跨语言通信;
-
首先需要在项目中安装msgpack模块:
Pip install msgpack-python
,然后再导入使用; -
packb
:将对象序列化成一个二进制对象; -
unpackb
:将对象还原;