本部分学习Python序列化相关操作。序列化主要是为了将内存中的对象持久化到磁盘(文件)以便于后续从文件中恢复对象。可用于对象持久化和网络传输。
本文主要学习字节流序列化操作。Python中用字节流序列化对象用pickle模块。
一、对象转字节(序列化)
通过pickle.dumps()方法,可以直接生成序列化后的字节流,如:
import json
import os.path
import pickle
d = dict(name='Bob', age=18)
# 转换为字节流
print(pickle.dumps(d))
输出为:
b'\x80\x04\x95\x1a\x00\x00\x00\x00\x00\x00\x00}\x94(\x8c\x04name\x94\x8c\x03Bob\x94\x8c\x03age\x94K\x12u.'
也可以通过 pickle.dumps(对象,文件)方法,直接持久化到文件中,如:
# 直接序列化到文件
pwd = os.path.abspath(".")
pickle_file_path = os.path.join(pwd, "resources", "pickle_demo")
with open(pickle_file_path, "wb") as pfile:
pickle.dump(d, pfile)
上述代码会在当前目录下的resources目录下生成一个pickle_demo序列化文件,并保存相应值