Python自动化运维

pickle- Python对象序列化

2018-03-14  本文已影响8人  巧生于缘

pickle模块实现Python对象结构的二进制协议序列化和反序列化。pickling将Python对象层次结构转换为字节流的过程。unpickling是相反操作,将字节流(二进制文件类似字节的对象)转换回对象层次结构。

pickle与Python其他模块关系

marshal

json

模块接口

(1) pickle.dump(obj,file,protocol = None,*,fix_imports = True )
函数的功能:将obj对象序列化存入已经打开的file中。

(2) pickle.dumps(obj,protocol = None,* ,fix_imports = True )
函数的功能:将obj对象序列作为bytes对象返回,而不是存入文件中。
(3) pickle.load(file,* ,fix_imports = True,encoding =“ASCII”,errors =“strict” )
函数的功能:将file中的对象序列化读出。
(4) pickle.loads(bytes_object,*,fix_imports = True,encoding =“ASCII”,errors =“strict” )
函数的功能:从bytes对象中读出序列化前的obj对象。

import pickle
list = [1,  2, 3, '123', {'key':100}]
 
dict = { 'x': [1, 2, 3, 4],  
         'y': ('a', 'b'),  
         'z': {'key':'var'}} 

with open('dataFile.txt', 'wb') as fw:
    pickle.dump(list, fw)
    pickle.dump(dict, fw)

with open('dataFile.txt', 'rb') as fr:
    data1 = pickle.load(fr)
    print(data1)
    data2 = pickle.load(fr)
    print(data2)

p = pickle.dumps(list)  
print( pickle.loads(p) )  
p = pickle.dumps(dict))  
print( pickle.loads(p) )
上一篇 下一篇

猜你喜欢

热点阅读