【pickle】使用

pickle
基本的数据序列和反序列化

通过pickle模块的序列化操作我们能够将程序中运行的对象信息保存到文件中去,永久存储;
通过pickle模块的反序列化操作,我们能够从文件中创建上一次程序保存的对象。

pickle.dump(obj, file, [,protocol])

obj是保存对象,file是保存的类文件对象,protocal是序列化协议(0:ASCII;1:老二进制;2:新二进制)
注意file,举例:file=open('data.pkl', 'wb')

pickle.dumps(obj)

把 obj 对象序列化后以 bytes 对象返回,不写入文件

pickle.load(file)

从file中读取一个字符串,并将它重构为原来的python对象

pickle.loads(bytes_object)

从 bytes 对象中读取一个反序列化对象,并返回其重组后的对象

代码中见到的例子:
序列化

def serialize(data):
    data_tuple = tuple(data.values())
    return pickle.dumps(data_tuple)

反序列化

def deserialize(data):  # data 是二进制数据
    data_tuple = pickle.loads(data)  # data_tuple 内元素可能不止4个 但是zip中只保留了前4个
    keys = ('nodes', 'r_label', 'g_label', 'n_label')
    return dict(zip(keys, data_tuple))

网上找的例子:

filename1 = 'random_forest.pkl'
filename2 = 'naive_bayes.pkl'
pickle.dump(r_clf,open(filename1,"wb"))
pickle.dump(clf,open(filename2,"wb"))

with open(file_path, 'wb') as f:
    pickle.dump(incidence, f)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值