Python中的pickle模塊解析
pickle模塊簡介
pickle 模塊和 json 模塊很像,都有序列化的功能,不過 pickle 模塊更加局限一些只能對 python 使用,它可以對一個 python 對象結(jié)構(gòu)的 二進制 序列化和反序列化。
序列化是將 Python 對象及其所擁有的層次結(jié)構(gòu)轉(zhuǎn)化為一個字節(jié)流的過程。反序列化則反之。
pickle模塊語法
pickle.dumps
將 python 對象作為 bytes 類型直接返回
import pickle class MyCls(object): pass x = pickle.dumps(MyCls) print(x)
打印結(jié)果
b'\x80\x04\x95\x16\x00\x00\x00\x00\x00\x00\x00\x8c\x08__main__\x94\x8c\x05MyCls\x94\x93\x94.'
示例中將一個類的結(jié)構(gòu)序列化成了字節(jié)串
pickle.dump
和 json.dump 一樣也是寫入文件的
import pickle class MyCls(object): pass with open('obj', 'wb')as f: pickle.dump(MyCls, f)
pickle.loads
將字節(jié)流返回成一個對象的原本的結(jié)構(gòu)形式
import pickle class MyCls(object): name = 'x' x = pickle.dumps(MyCls) # print(x) y = pickle.loads(x) print(y) print(y.name)
打印結(jié)果
<class '__main__.MyCls'>
x
返回出來的是原本對象的結(jié)構(gòu),所以原本使用的方法都不變
pickle.load
將文件中的字節(jié)串反序列化
import pickle class MyCls(object): name = 'x' with open('obj', 'wb')as e: pickle.dump(MyCls, e) with open('obj', 'rb')as f: x = pickle.load(f) print(x.name)
到此這篇關(guān)于Python中的pickle模塊解析的文章就介紹到這了,更多相關(guān)pickle模塊內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python3.9安裝RobotFramework的簡單教程
python3.9安裝RobotFramework,不同于python2.7和python3.6,使用這兩個版本安裝會出現(xiàn)問題,因為我安裝遇到問題發(fā)現(xiàn)沒有最新的教程,所以打算自己寫一個,同時下面會記錄安裝步驟及使用的方法會出現(xiàn)的一些問題,對python3.9安裝RobotFramework感興趣的朋友一起看看吧2023-01-01Python的Flask框架與數(shù)據(jù)庫連接的教程
這篇文章主要介紹了Python的Flask框架與數(shù)據(jù)庫連接的教程,是Flask框架學(xué)習(xí)當中的基本知識,需要的朋友可以參考下2015-04-04python tkinter制作用戶登錄界面的簡單實現(xiàn)
這篇文章主要介紹了python tkinter制作用戶登錄界面的簡單實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04pytest實戰(zhàn)技巧之參數(shù)化基本用法和多種方式
本文介紹了pytest參數(shù)化的基本用法和多種方式,幫助讀者更好地使用這個功能,同時,還介紹了一些高級技巧,如動態(tài)生成參數(shù)名稱、參數(shù)化的組合和動態(tài)生成參數(shù)化裝飾器,幫助讀者更靈活地使用參數(shù)化,感興趣的朋友參考下吧2023-12-12