我已經開始學習用于物件序列化和反序列化的pickle模塊。我知道pickle.dump是用來將代碼存盤為位元流的(序列化),而pickle.load是將位元流做回python物件中。 (反序列化)。但是什么是dump和load,它們與dump和load的區別是什么?我已經看了檔案,但是我很難區分這兩者。
pickle.dumps(obj, protocol=None, *, fix_imports=True, buffer_callback=None)
pickle.dumps(obj); 回傳物件obj的pickled表示,作為一個位元組物件,而不是將其寫入一個檔案。
pickle.load(data, /, *, fix_imports=True, encoding="ASCII", errors="strict", buffers=None) 回傳一個物件的腌制表示資料的重構物件層次結構。
感謝任何幫助。 謝謝你
uj5u.com熱心網友回復:
dump和dumps之間的區別是:dump將pickled物件寫入一個開放的檔案,而dumps將pickled物件作為bytes回傳。該檔案必須以二進制模式打開以便寫入。dump和dumps的物件的腌制版本是完全一樣的。
因此,如果你對物件obj做了如下處理:
with open("pickle1", "wb") as f:
pickle.dump(obj, f)
with open("pickle2"/span>, "wb"/span>) as f:
f.write(pickle.dumps(obj))
你最終會得到兩個內容完全相同的檔案。
。這同樣適用于加載 - load從一個打開的(可讀的)檔案物件中 "解壓",而loads使用一個bytes物件。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/321104.html
標籤:
