python學習 pickle模組 序列化

2021-10-03 18:11:56 字數 1618 閱讀 2775

pickle模組實現了用於序列化和反序列化python物件結構的二進位制協議。 「pickling」是將python物件層次結構轉換為位元組流的過程, 「unpickling」是反向操作,從而將位元組流(來自二進位制檔案或類似位元組的物件)轉換回物件層次結構。pickle模組對於錯誤或惡意構造的資料是不安全的。

import

pickle

datalist = [[1, 1, '

yes'

], [1, 1, '

yes'

], [1, 0, 'no'

], [0, 1, 'no'

], [0, 1, 'no'

]]datadic = }

with open(

'demo.txt

','wb

') as in_data:

pickle.dump(datalist,in_data,pickle.highest_protocol)

pickle.dump(datadic,in_data,pickle.highest_protocol)

with open(

'demo.pkl

','rb

') as out_data:

#按儲存變數的順序載入變數

data =pickle.load(out_data)

print(data) #

datalist

data=pickle.load(out_data)

print(data) #

datadic

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

#函式的功能:將obj物件序列化存入已經開啟的file中。
引數

obj:想要序列化的obj物件。

file:檔名稱。

protocol:序列化使用的協議。如果該項省略,則預設為0。

如果為負值或highest_protocol,則使用最高的協議版本。

pickle.load(file)

函式的功能:將file中的物件序列化讀出。

pickle.dumps(obj[, protocol])

函式的功能:將obj物件序列化為string形式,而不是存入檔案中。

引數:obj:想要序列化的obj物件。

protocal:如果該項省略,則預設為0。如果為負值或highest_protocol,則使用最高的協議版本。

pickle.loads(string)

函式的功能:從string中讀出序列化前的obj物件。

引數:string:檔名稱。

【注】 dump() 與 load() 相比 dumps() 和 loads() 還有另一種能力:

dump()函式能乙個接著乙個地將幾個物件序列化儲存到同乙個檔案中,

隨後呼叫load()來以同樣的順序反序列化讀出這些物件。

python模組(json和pickle模組)

json和pickle模組,兩個都是用於序列化的模組 json模組,用於字串與python資料型別之間的轉換 pickle模組,用於python特有型別與python資料型別之間的轉換 兩個模組,都提供了dumps,dump,loads,load 4個功能 1 import json 2 s 用js...

Python 學習筆記 pickle

pickle是python語言的乙個標準模組,安裝python後已包含pickle庫,不需要單獨再安裝。注意引包的時候,python2是cpickle庫,python3是pickle庫。pickle模組實現了基本的資料序列化和反序列化。通過pickle模組的序列化操作我們能夠將程式中執行的物件資訊儲...

Python學習筆記 pickle(醃製)

dumps object 將物件序列化 import pickle lista mingyue jishi yob listb pickle.dumps lista print listb loads string 將物件原樣恢復,並且物件型別也恢復為原來的格式 listc pickle.loads...