pickle是一种把python对象转换为便于存储在文件或数据库中,和可以在网络进行传输的二进制或文本格式的编码方法
pickle 模块主要提供了两个功能,一个是将python对象转换成字节流,即序列化;另一个是将字节流转换成python对象,即反序列化。
每个功能又分出了两个分支,一个是仅将python对象转换成字节流,另一个是将python对象转换成字节流并保存到文件中去(保存文件的后缀为”.pkl”).
pickle 是python语言的一个内置模块,可以直接通过import导入pickle模块直接使用.
代码:
import pickle
if __name__ == "__main__":
# 原始数据
data = {"username": "rosa", "pwd": 123}
# 1. 序列化
# (1)直接序列化成字节流:dumps()
data_bytes = pickle.dumps(data)
print(data_bytes)
# b'\x80\x03}q\x00(X\x08\x00\x00\x00usernameq\x01X\x04\x00\x00\x00rosaq\x02X\x03\x00\x00\x00pwdq\x03K{u.'
# (2) 序列化之后保存到文件中去: dump()
with open("data.pkl", mode="wb") as fp:
pickle.dump(data,fp)
#2. 反序列化
# (1)直接将序列化的字节流反序列为python对象 : loads()
data_bytes = b'\x80\x03}q\x00(X\x08\x00\x00\x00usernameq\x01X\x04\x00\x00\x00rosaq\x02X\x03\x00\x00\x00pwdq\x03K{u.'
data = pickle.loads(data_bytes)
print(data) # {'username': 'rosa', 'pwd': 123}
# (2)将二进制文件直接反序列为python对象 : load()
with open("data.pkl","rb") as fp :
data = pickle.load(fp)
print(data) #{'username': 'rosa', 'pwd': 123}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。