使用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:\Python\Python37-32\python.exe D:/WORKSPACE/python/test.py
name:Sunny,age=12
<class '__main__.People'> 12 Sunny

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

子龙烜

坦克大战系列,手把手带你实现

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值