1、什么东西能用pickle
模块存储?
- 所有Python支持的原生类型: 布尔, 整数, 浮点数, 复数, 字符串,
bytes
(字节串)对象, 字节数组, 以及None
. - 由任何原生类型组成的列表,元组,字典和集合。
- 由任何原生类型组成的列表,元组,字典和集合组成的列表,元组,字典和集合(可以一直嵌套下去,直至Python支持的最大递归层数).
- 函数,类,和类的实例(带警告)。
【摘自《深入Python》】
2、示例(保存数据到PICKLE文件):
#encoding:UTF-8
import pickle
#序列化
def dump_pickle():
user={}
user['id']=1
user['name']='tanweijie'
user['email']='tanweijie@outlook.com'
user['sex']='boy'
#with保证自动关闭文件
#设置文件模式为'wb'来以二进制写模式打开文件
with open('C:/Users/Mr_Tank_/Desktop/user.pickle','wb') as f:
#dump()函数接受一个可序列化的Python数据结构
pickle.dump(user,f)
print('success')
#反序列化
def load_pickle():
with open('C:/Users/Mr_Tank_/Desktop/user.pickle','rb') as f:
user=pickle.load(f)
#user变量是一个字典
print(user)
3、结果:
>>> dump_pickle()
success
>>> load_pickle()
{'id': 1, 'name': 'tanweijie', 'sex': 'boy', 'email': 'tanweijie@outlook.com'}