Python中的pickle模塊解析
pickle模塊簡(jiǎn)介
pickle 模塊和 json 模塊很像,都有序列化的功能,不過 pickle 模塊更加局限一些只能對(duì) python 使用,它可以對(duì)一個(gè) python 對(duì)象結(jié)構(gòu)的 二進(jìn)制 序列化和反序列化。
序列化是將 Python 對(duì)象及其所擁有的層次結(jié)構(gòu)轉(zhuǎn)化為一個(gè)字節(jié)流的過程。反序列化則反之。
pickle模塊語法
pickle.dumps
將 python 對(duì)象作為 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.'
示例中將一個(gè)類的結(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é)流返回成一個(gè)對(duì)象的原本的結(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
返回出來的是原本對(duì)象的結(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)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python在畫圖時(shí)使用特殊符號(hào)的方法總結(jié)
在制作圖表時(shí),如果遇到需要利用特殊符號(hào)進(jìn)行表示時(shí)該怎么辦呢?不用慌,這篇文章為大家總結(jié)了python畫圖中使用各種特殊符號(hào)的方式,需要的可以參考一下2022-04-04
Python Flask應(yīng)用中的主動(dòng)垃圾回收機(jī)制詳解
在 Python Web 開發(fā)中,內(nèi)存管理是一個(gè)重要但常被忽視的話題,作為一款輕量級(jí)的 Web 框架,Flask 雖然簡(jiǎn)潔高效,但在長(zhǎng)時(shí)間運(yùn)行或高并發(fā)場(chǎng)景下,內(nèi)存問題可能會(huì)逐漸顯現(xiàn),所以本文給大家介紹了Python Flask應(yīng)用中的主動(dòng)垃圾回收機(jī)制,需要的朋友可以參考下2025-07-07
python繪制雙Y軸折線圖以及單Y軸雙變量柱狀圖的實(shí)例
今天小編就為大家分享一篇python繪制雙Y軸折線圖以及單Y軸雙變量柱狀圖的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-07-07
Python中selenium實(shí)現(xiàn)文件上傳所有方法整理總結(jié)
本篇文章主要介紹了Python中selenium實(shí)現(xiàn)文件上傳所有方法整理總結(jié),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。2017-04-04

