對象的持久化,可以把內存中對象變成字元串保存到硬碟文件或者資料庫、雲伺服器上,也可以反向序列化,把硬碟文件中字元串轉換成對象


針對Python中對象的序列化

通俗地講,對象通過dumps轉成字元串(或dump存入文件),之後可以通過loads這個字元串重新生成對象(或load文件生成對象)


pickle 就是腌漬的意思,也就是把東西腌起來保存成文件,要用的時候讀出來洗洗還能用。


pickle是Python序列化的一個工具。

序列化,通俗來講,就是把一個Python對象轉成一串位元組。如果你想把Python對象保存到一個文件里,你是需要Python虛擬機支持的,不能夠直接把Python對象保存進文件,更不能進行網路傳輸,所以序列化這個東西就產生了。

pickle可以把Python對象變成一串字元,讓它可以保存到一個文件里,可以讓Python對象進行網路傳輸,也可以從一串字元中恢復為Python對象,這樣就可以把Python中虛擬的對象轉化為實際的一串字元了。


Python對象在程序運行的時候是在內存中的,pickle模塊可以將對象持久化到硬碟(通俗點就是保存到文件),對象裡邊保存的數據就不會隨著Python對象生命周期的結束而丟失,使用的時候直接用pickle再從文件載入回來就好了


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

pickle提供了一個簡單的持久化功能。可以將對象以文件的形式存放在磁碟上。

pickle模塊只能在python中使用,python中幾乎所有的數據類型(列表,字典,集合,類等)都可以用pickle來序列化,

pickle序列化後的數據,可讀性差,人一般無法識別。


Python的sys模塊提供訪問解釋器使用或維護的變數,和與解釋器進行交互的函數。通俗來講,sys模塊負責程序與python解釋器的交互,提供了一系列的函數和變數,用於操控python運行時的環境。


如果你想存取一個對象到文件當中就可以用這個庫啊。就像你在java當中如果要傳輸一個對象的時候,或者你想存取一個一個對象到文件當中的時候,你發現直接不像基本數據類型int,char,byte這種可以直接寫,而還要實現Seriable活著時Paracle介面啥的。而現在在python當中直接用pickle.dump(obj,file,[protocol])就可以了,所以說python有的時候是很好用的,可以快速的解決一些問題,好多庫可以用,大牛們都幫你實現好了,等著你去用就好了。


推薦閱讀:
相关文章