python模块学习-pickle模块

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}

相关文章

功能概要:(目前已实现功能)公共展示部分:1.网站首页展示...
大体上把Python中的数据类型分为如下几类: Number(数字) ...
开发之前第一步,就是构造整个的项目结构。这就好比作一幅画...
源码编译方式安装Apache首先下载Apache源码压缩包,地址为ht...
前面说完了此项目的创建及数据模型设计的过程。如果未看过,...
python中常用的写爬虫的库有urllib2、requests,对于大多数比...