python基础_序列化模块pickle

1.定义

序列化  : 把不能够直接存储在文件中的数据变得可存储,这个过程就是序列化
反序列化: 把文件的数据内容拿出来,恢复成原来的数据类型,这个过程就是反序列化.

2.实际案例的使用dumps和loads

import pickle

# ### (1)dumps 和 loads
#dumps 把任意对象序列化成一个bytes
lst = [1,2,3]
res = pickle.dumps(lst)
print(res)
 
#loads 把任意bytes反序列化成原来数据
lst = pickle.loads(res)
print(lst,type(lst))

3.实际案例dump和load

# ### (2)dump 和 load

#dump  把对象序列化后写入到file-like Object(即文件对象) (如果配合文件操作 推荐使用dump和load)
with open("ceshi2.txt",mode="wb") as fp:
    setvar = {"a",1,"b"}
    # dump 相当于先dumps 变成字节流,再用write写入字节流;将两部操作合并成一步是dump
    # dump(要序列化的数据,文件对象)
    pickle.dump(setvar,fp)

#load  把file-like Object(即文件对象)中的内容拿出来,反序列化成原来数据
with open("ceshi2.txt",mode="rb") as fp:
    # 首先把文件内容读出来,然后进行反序列化,将两部操作合并成一步
    res = pickle.load(fp)

print(res,type(res))

4.dumps和dump区别对比

# dumps 和 loads 配合文件操作使用
with open("ceshi3.txt",mode="wb") as fp:
    dic = {"xb":"比较喜欢晒女友","zh":"喜欢睡觉"}
    res = pickle.dumps(dic)
    fp.write(res)

with open("ceshi3.txt",mode="rb") as fp:
    res = fp.read()
    dic = pickle.loads(res)
print(dic,type(dic))

猜你喜欢

转载自www.cnblogs.com/jalen-123/p/13173749.html