欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

關(guān)于python的對(duì)象序列化介紹

 更新時(shí)間:2022年01月28日 09:52:42   作者:大家好,我今天叫傻瓜  
大家好,本篇文章主要講的是關(guān)于python的對(duì)象序列化介紹,感興趣的同學(xué)趕快來看一看吧,對(duì)你有幫助的話記得收藏一下

對(duì)象:是抽象的概念 如列表 元組 字典 集合 皆為對(duì)象

序列化:一種方法。目的:把對(duì)象存儲(chǔ)在磁盤上(即,將對(duì)象轉(zhuǎn)換為字節(jié)數(shù)據(jù)/字符數(shù)據(jù))。

這一過程我們借助序列化這一方法實(shí)現(xiàn)。

為什么需要序列化和反序列化這一操作呢?

  1.便于存儲(chǔ)。序列化過程將文本信息轉(zhuǎn)變?yōu)槎M(jìn)制數(shù)據(jù)流。信息就容易存儲(chǔ)在硬盤之中,當(dāng)需要讀取文件的時(shí)候,從硬盤中讀取數(shù)據(jù),然后再將其反序列化便可以得到原始的數(shù)據(jù)。在Python程序運(yùn)行中得到了一些字符串、列表、字典等數(shù)據(jù),想要長久的保存下來,方便以后使用,而不是簡(jiǎn)單的放入內(nèi)存中關(guān)機(jī)斷電就丟失數(shù)據(jù)。

  2.便于傳輸。當(dāng)兩個(gè)進(jìn)程在進(jìn)行遠(yuǎn)程通信時(shí),彼此可以發(fā)送各種類型的數(shù)據(jù)。無論是何種類型的數(shù)據(jù),都會(huì)以二進(jìn)制序列的形式在網(wǎng)絡(luò)上傳送。發(fā)送方需要把這個(gè)對(duì)象轉(zhuǎn)換為字節(jié)序列,在能在網(wǎng)絡(luò)上傳輸;接收方則需要把字節(jié)序列在恢復(fù)為對(duì)象。

兩個(gè)模塊實(shí)現(xiàn)序列化

1.pickle模塊

pickle模塊實(shí)現(xiàn)了基本的數(shù)據(jù)序列化和反序列化。通過pickle模塊的序列化操作我們能夠?qū)⒊绦蛑羞\(yùn)行的對(duì)象信息保存到文件中去,永久存儲(chǔ);通過pickle模塊的反序列化操作,我們能夠從文件中創(chuàng)建上一次程序保存的對(duì)象。

pickle模塊中的四個(gè)方法:dumps dump loads  load

#dumps將對(duì)象序列化為字節(jié)數(shù)據(jù) 
>>> import pickle
>>> ls = [1,2,3]
>>> data = pickle.dumps(ls)
>>> data
b'\x80\x04\x95\x0b\x00\x00\x00\x00\x00\x00\x00]\x94(K\x01K\x02K\x03e.'
>>> f=open("a.txt",mode="wb")
>>> f.write(data)
22
>>> f.close()
 
>>> f=open("a.txt",mode="rb")
>>> f.read()
b'\x80\x04\x95\x0b\x00\x00\x00\x00\x00\x00\x00]\x94(K\x01K\x02K\x03e.'
>>> f.close()
#dump將對(duì)象序列化為字節(jié)數(shù)據(jù)并且保存到file文件中
>>> ls=[2,3,4]
>>> pickle.dump(ls,open("a.txt",mode="wb"))
>>> f=open("a.txt",mode="rb")
>>> f.read()
b'\x80\x04\x95\x0b\x00\x00\x00\x00\x00\x00\x00]\x94(K\x02K\x03K\x04e.'
 
#loads將字節(jié)數(shù)據(jù)反序列化為對(duì)象
>>> f =open("a.txt","rb")
>>> show = f.read()
>>> show
b'\x80\x04\x95\x0f\x00\x00\x00\x00\x00\x00\x00]\x94(K\x01K\x02K\x03K\x04K\x05e.'
>>> show=pickle.loads(show)
>>> show
[1, 2, 3, 4, 5]
>>> f.close()
#load將file中的字節(jié)數(shù)據(jù)反序列化為對(duì)象
>>> pickle.load(open("a.txt","rb"))
[1, 2, 3, 4, 5]
 

2.json模塊

json模塊是將對(duì)象序列化為字符數(shù)據(jù),json模塊一樣有dumps dump loads  load方法,注意:json模塊一般是用來序列化字典對(duì)象 

#dumps方法
>>> import json
>>> d={"usename":"zhangsan","age":17}
>>> json.dumps(d)
'{"usename": "zhangsan", "age": 17}'
>>> s=json.dumps(d)
>>> f=open("a.txt","wt")
>>> f.write(s)
34
>>> f.close()
 
#loads方法
>>> f=open("a.txt","rt")
>>> ss = f.read()
>>> ss
'{"usename": "zhangsan", "age": 17}'
>>> json.loads(ss)
{'usename': 'zhangsan', 'age': 17}
>>> dd = json.loads(ss)
>>> dd
{'usename': 'zhangsan', 'age': 17}
>>> f.close()

到此這篇關(guān)于關(guān)于python的對(duì)象序列化介紹的文章就介紹到這了,更多相關(guān)python對(duì)象序列化內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論