詳解Python 序列化Serialize 和 反序列化Deserialize
詳解Python 序列化Serialize 和 反序列化Deserialize
序列化 (serialization)
序列化是將對(duì)象狀態(tài)轉(zhuǎn)換為可保持或傳輸?shù)母袷降倪^(guò)程。與序列化相對(duì)的是反序列化,
它將流轉(zhuǎn)換為對(duì)象。這兩個(gè)過(guò)程結(jié)合起來(lái),可以輕松地存儲(chǔ)和傳輸數(shù)據(jù)。
序列化和反序列化的目的
1、以某種存儲(chǔ)形式使自定義對(duì)象持久化;
2、將對(duì)象從一個(gè)地方傳遞到另一個(gè)地方?! ?/p>
3、使程序更具維護(hù)性
序列化
由于存在于內(nèi)存中的對(duì)象都是暫時(shí)的,無(wú)法長(zhǎng)期駐存,為了把對(duì)象的狀態(tài)保持下來(lái),這時(shí)需要把對(duì)象寫入到磁盤或者其他介質(zhì)中,這個(gè)過(guò)程就叫做序列化。
反序列化
反序列化恰恰是序列化的反向操作,也就是說(shuō),把已存在在磁盤或者其他介質(zhì)中的對(duì)象,反序列化(讀?。┑絻?nèi)存中,以便后續(xù)操作,而這個(gè)過(guò)程就叫做反序列化。
概括性來(lái)說(shuō)序列化是指將對(duì)象實(shí)例的狀態(tài)存儲(chǔ)到存儲(chǔ)媒體(磁盤或者其他介質(zhì))的過(guò)程。在此過(guò)程中,先將對(duì)象的公共字段和私有字段以及類的名稱(包括類所在的程序集)轉(zhuǎn)換為字節(jié)流,然后再把字節(jié)流寫入數(shù)據(jù)流。在隨后對(duì)對(duì)象進(jìn)行反序列化時(shí),將創(chuàng)建出與原對(duì)象完全相同的副本。
Python中可以使用 Pickle 和 json, 以及自定義序列化反序列化函數(shù)進(jìn)行處理需要序列化的數(shù)據(jù)。
代碼如下:
import pickle import json d = [1,2,3,4] print(pickle.dumps(d)) print(type(pickle.dumps(d))) print(json.dumps(d)) print(type(json.dumps(d)))
感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持,如有疑問(wèn)請(qǐng)留言或者到本站社區(qū)交流討論,大家共同進(jìn)步!
- Python序列化與反序列化pickle用法實(shí)例
- Python3.5 Json與pickle實(shí)現(xiàn)數(shù)據(jù)序列化與反序列化操作示例
- Python pickle類庫(kù)介紹(對(duì)象序列化和反序列化)
- 淺析Python 序列化與反序列化
- Python 序列化和反序列化庫(kù) MarshMallow 的用法實(shí)例代碼
- Python實(shí)現(xiàn)的序列化和反序列化二叉樹(shù)算法示例
- Python Json序列化與反序列化的示例
- Python實(shí)現(xiàn)JSON反序列化類對(duì)象的示例
- 老生常談Python序列化和反序列化
- 詳解Python中的序列化與反序列化的使用
- python3序列化與反序列化用法實(shí)例
- Python使用pickle進(jìn)行序列化和反序列化的示例代碼
相關(guān)文章
pandas 使用apply同時(shí)處理兩列數(shù)據(jù)的方法
下面小編就為大家分享一篇pandas 使用apply同時(shí)處理兩列數(shù)據(jù)的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-04-04vue.js實(shí)現(xiàn)輸入框輸入值內(nèi)容實(shí)時(shí)響應(yīng)變化示例
這篇文章主要介紹了vue.js實(shí)現(xiàn)輸入框輸入值內(nèi)容實(shí)時(shí)響應(yīng)變化,結(jié)合實(shí)例形式分析了vue.js使用v-model屬性進(jìn)行數(shù)據(jù)綁定的相關(guān)操作技巧,需要的朋友可以參考下2018-07-07python 解決mysql where in 對(duì)列表(list,,array)問(wèn)題
這篇文章主要介紹了python 解決mysql where in 對(duì)列表(list,,array)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-06-06class類在python中獲取金融數(shù)據(jù)的實(shí)例方法
在本篇文章里小編給大家整理了關(guān)于class類怎樣在python中獲取金融數(shù)據(jù)的相關(guān)內(nèi)容,有需要的朋友們可以學(xué)習(xí)下。2020-12-12聊聊prod()與cumprod()區(qū)別cumsum()
這篇文章主要介紹了prod()與cumprod()區(qū)別cumsum(),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-05-05Python可以實(shí)現(xiàn)棧的結(jié)構(gòu)嗎
在本篇文章里小編給各位整理的是關(guān)于Python實(shí)現(xiàn)棧的結(jié)構(gòu)的條件的相關(guān)知識(shí)點(diǎn),有需要的朋友們可以學(xué)習(xí)下。2020-05-05使用pycallgraph分析python代碼函數(shù)調(diào)用流程以及框架解析
這篇文章主要介紹了使用pycallgraph分析python代碼函數(shù)調(diào)用流程以及框架解析,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-03-03python 下劃線的多種應(yīng)用場(chǎng)景總結(jié)
Python有很多地方使用下劃線,在不同場(chǎng)合下,有不同含義。本文總結(jié)Python語(yǔ)言編程中常用下劃線的地方,力圖一次搞懂下劃線的常見(jiàn)用法,感興趣的朋友快來(lái)一起看看吧2021-05-05