把变量从内存中变成可存储或传输的过程称之为序列化,即序例化后可以将对象永久保存在磁盘文件中。反之把变量内容从序列化的对象重新读到内存里称之为反序列化
pickle模块实现
import pickle
class Student:
def __init__(self, name, age):
self.name = name
self.age = age
st1 = Student("frank", "22")
# 序列化
st1_data = pickle.dumps(st1)
# print(type(st1_data))
# print(st1_data)
# save to file
with open("st.txt", "wb") as f:
f.write(st1_data)
# 反序列化
with open("st.txt", "rb") as f:
data = f.read()
obj = pickle.loads(data)
print(obj)
json模块也可实现序列化和反序列化,使用与pickle类似
import json
dic = {"name": "frank", 'age': 22}
# 序列化
dic_str = json.dumps(dic)
print(type(dic_str), dic_str)
# 反序列化
dic_obj = json.loads(dic_str)
print(type(dic_obj), dic_obj)