溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

pickle如何實(shí)現(xiàn)json序列化

發(fā)布時(shí)間:2021-11-24 10:58:37 來(lái)源:億速云 閱讀:206 作者:小新 欄目:網(wǎng)絡(luò)安全

這篇文章主要為大家展示了“pickle如何實(shí)現(xiàn)json序列化”,內(nèi)容簡(jiǎn)而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“pickle如何實(shí)現(xiàn)json序列化”這篇文章吧。

序列化:

把對(duì)象 轉(zhuǎn)化為 str或者bytes

反序列化:

把str或者bytes轉(zhuǎn)化為對(duì)象

pickle是python所特有的序列化工具,可以序列化所有的東西包括函數(shù),類(lèi),數(shù)據(jù)類(lèi)型等,序列化后是字節(jié)或者二進(jìn)制文件

json是所有語(yǔ)言都支持的,只支持序列化常規(guī)的數(shù)據(jù)類(lèi)型,序列化后是可視化的,跟原來(lái)的內(nèi)容是一樣的,可視化性更強(qiáng)

pickle:

dumps:序列化后直接返回字符串或者bytes(字節(jié))

dump:序列化后寫(xiě)入文件中

dumps和dump序列化同一個(gè)內(nèi)容,所得出的結(jié)果是一樣的

使用方法:

        import pickle

        注:json也可以序列化和反序列化,但json面對(duì)復(fù)雜數(shù)據(jù)無(wú)法處理;

    a.

序列化到文件中:pickle.dump():使用此方法進(jìn)行序列化

例:

import pickle

dict1 = {'a':1,'name':'LiuZhengwei','age':25}

f = open("test1.pkl","wb")

pickle.dump(dict1,f)

f.close()

注:此時(shí)就把字典寫(xiě)入到磁盤(pán)中了

如果使用的json,則使用json.dump(dict1,f)

列表,字典等只能序列化之后才能存入文件中

從文件中反序列化:pickle.load():使用此方法進(jìn)行返序列化

例:

import pickle

f = open("test1.pkl","rb")

data = pickle.load(f)

print(data)

f.close()

注:此時(shí)把dump到磁盤(pán)中的文件反序列化顯示出來(lái)

如果使用的json,則使用json.load(f)

    b.  

不序列化到文件中:pickle.dumps()

import pickle

li = ['alex',11,22,'ok','sb']

dumpsed = pickle.dumps(li)

print(dumpsed)

注:可以看到把li列表序列化成了二進(jìn)制內(nèi)容,不能正常查看

pickle如何實(shí)現(xiàn)json序列化

不從文件中反序列化:pickle.loads()

import pickle

li = ['alex',11,22,'ok','sb']

dumpsed = pickle.dumps(li)

print(dumpsed)

loadsed = pickle.loads(dumpsed)

print(loadsed)

pickle如何實(shí)現(xiàn)json序列化

json的序列化跟pickle一樣:

    import json

json僅僅可以序列化int,float,bool,str,list,dict,None

dumps:返回的是字符串,而pickle返回的是字節(jié)

以上是“pickle如何實(shí)現(xiàn)json序列化”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI