使用pickle工具包,将python数据序列化和反序列化

使用pickle工具包,将python数据序列化和反序列化,第1张

使用pickle工具包,将python数据序列化和反序列化 学习目标:

学会使用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
12 Sunny

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5700593.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存