天天看點

Python 07 Pickle 與 Json 序列化

Pickle序列化

python的pickle子產品實作了基本的資料序列和反序列化。通過pickle子產品的序列化操作我們能夠将程式中運作的對象資訊儲存到檔案中去,永久存儲;通過pickle子產品的反序列化操作,我們能夠從檔案中建立上一次程式儲存的對象。

'''

基本接口:

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

注解:将對象obj儲存到檔案file中去。

protocol為序列化使用的協定版本,0:ASCII協定,所序列化的對象使用可列印的ASCII碼表示;

1:老式的二進制協定;2:2.3版本引入的新二進制協定,較以前的更高效。其中協定0和1相容老版本的python。

protocol預設值為0。

file:對象儲存到的類檔案對象。file必須有write()接口, file可以是一個以'w'方式打開的檔案或者一個

StringIO對象或者其他任何實作write()接口的對象。如果protocol>=1,檔案對象需要是二進制模式打開的。

pickle.load(file)

注解:從file中讀取一個字元串,并将它重構為原來的python對象。

file:類檔案對象,有read()和readline()接口。

#dump

import pickle

account_info = {

'111111':['luck',1500,1500],

'222222':['yy'9000,9000],

}

f = file('account.pkl','wb')

pickle.dump(account_info,f)

f.close()

#load

pkl_file = open('account.pkl','rb')

account_list = pickle.load(pkl_file)

pkl_file.close()

#--------------------------------

#Json pickle 更通用,pickle隻适合于python。