学会使用pickle工具包,对python数据序列化和反序列化
学习内容:
1、 序列化和反序列化
2、 pickle工具包
3、 序列化方法dump()
4、 反序列化方法load()
分步学习:
1、 为什么要进行序列化 数据可以存储在电脑内存,硬盘文件,数据库中,其中将数据存储到文件中会用到序列化的知识,好处是待存储数据的类型信息,数据信息,都会保存,通过反序列化方法就可以快速还原数据了。
2、pickle工具包
pickle工具包是python特有的,提供了一个简单的序列化(持久化)功能。可以将数据对象(列表,字典,集合,类等)以文件的形式存放在磁盘上。
当然,pickle序列化后的数据,可读性差,人一般无法识别。如下所示,你猜你大胆的猜,存储的是什么数据?
(lp0 (lp1 (V p2 I95 tp3 aa(lp4 (g2 I14 tp5 a(V# p6 I5 tp7 a(g2 I70 tp8 ag7 a(g2 I1 tp9 aa.
3、 dump()序列化
(1)序列化列表和元组基础数据类型,需要注意事项:
文件格式需要用wb,以二进制写方式打开文件dump(数据信息,打开文件对象,0),第三个参数0,可以防止ttt.pkl文件中存储的数据乱码
s = [[(' ', 95)], [(' ', 14), ('#', 5), (' ', 70), ('#', 5), (' ', 1)]] f = open("ttt.pkl","wb") pickle.dump(s, f, 0)
(2)序列化对象
class People(): def __init__(self): self.name="Sunny" self.age = "12" def __str__(self): return "name:"+self.name+",age="+self.age p = People() print(str(p)) f = open("ttt.pkl","wb") pickle.dump(p, f, 0)
4、load()反序列化
f = open("ttt.pkl","rb") data = pickle.load(f) print(type(data),data.age,data.name)执行结果
D:PythonPython37-32python.exe D:/WORKSPACE/python/test.py
name:Sunny,age=12
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)