詳解Python 序列化Serialize 和 反序列化Deserialize
序列化 (serialization)
序列化是將對象狀態轉換為可保持或傳輸的格式的過程。與序列化相對的是反序列化,
它將流轉換為對象。這兩個過程結合起來,可以輕松地存儲和傳輸數據。
序列化和反序列化的目的
1、以某種存儲形式使自定義對象持久化;
2、將對象從一個地方傳遞到另一個地方。
3、使程序更具維護性
序列化
由于存在于內存中的對象都是暫時的,無法長期駐存,為了把對象的狀態保持下來,這時需要把對象寫入到磁盤或者其他介質中,這個過程就叫做序列化。
反序列化
反序列化恰恰是序列化的反向操作,也就是說,把已存在在磁盤或者其他介質中的對象,反序列化(讀取)到內存中,以便后續操作,而這個過程就叫做反序列化。
概括性來說序列化是指將對象實例的狀態存儲到存儲媒體(磁盤或者其他介質)的過程。在此過程中,先將對象的公共字段和私有字段以及類的名稱(包括類所在的程序集)轉換為字節流,然后再把字節流寫入數據流。在隨后對對象進行反序列化時,將創建出與原對象完全相同的副本。
Python中可以使用 Pickle 和 json, 以及自定義序列化反序列化函數進行處理需要序列化的數據。
代碼如下:
import pickleimport jsond = [1,2,3,4]print(pickle.dumps(d))print(type(pickle.dumps(d)))print(json.dumps(d))print(type(json.dumps(d)))
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持,如有疑問請留言或者到本站社區交流討論,大家共同進步!
新聞熱點
疑難解答