栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

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

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用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

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/700470.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号