python常用模块之pickle

python1个json模块和1个pickle模块都是用于序列化的模块。

其中前文介绍过json模块。json模块只能序列化普通字符,比如字典、列表等。但是如果是函数呢?json其实是无法序列化的。这个时候引入pickle模块。

该模块是python独有的,换而言之,pickle模块序列化的数据只有python自己可以读取,其他语言是无法读取的。

值得注意的是json的4种方法和pickle的4种方法是一样的。即load dump dumps loads。

import pickle

def fun():
    print('hello,cnblogs')

data = {"name":"cnblog","func":fun}

with open('test.pick','wb') as f:
    pickle.dump(data,f)

  

# with open('test.pick''')


import pickle

with open('test.pick','rb') as f:
    data = pickle.load(f)
    print(data)
    print(data['name'])

  

 python3种pickle序列化是可以多次的,但是反序列化只能一次。所以,一般情况下,都是序列化一次的。序列化和反序列化用二进制流。

原文地址:https://www.cnblogs.com/lin1/p/8967982.html