您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“pickle如何實現json序列化”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“pickle如何實現json序列化”這篇文章吧。
序列化:
把對象 轉化為 str或者bytes
反序列化:
把str或者bytes轉化為對象
pickle是python所特有的序列化工具,可以序列化所有的東西包括函數,類,數據類型等,序列化后是字節或者二進制文件
json是所有語言都支持的,只支持序列化常規的數據類型,序列化后是可視化的,跟原來的內容是一樣的,可視化性更強
pickle:
dumps:序列化后直接返回字符串或者bytes(字節)
dump:序列化后寫入文件中
dumps和dump序列化同一個內容,所得出的結果是一樣的
使用方法:
import pickle
注:json也可以序列化和反序列化,但json面對復雜數據無法處理;
a.
序列化到文件中:pickle.dump():使用此方法進行序列化
例:
import pickle
dict1 = {'a':1,'name':'LiuZhengwei','age':25}
f = open("test1.pkl","wb")
pickle.dump(dict1,f)
f.close()
注:此時就把字典寫入到磁盤中了
如果使用的json,則使用json.dump(dict1,f)
列表,字典等只能序列化之后才能存入文件中
從文件中反序列化:pickle.load():使用此方法進行返序列化
例:
import pickle
f = open("test1.pkl","rb")
data = pickle.load(f)
print(data)
f.close()
注:此時把dump到磁盤中的文件反序列化顯示出來
如果使用的json,則使用json.load(f)
b.
不序列化到文件中:pickle.dumps()
import pickle
li = ['alex',11,22,'ok','sb']
dumpsed = pickle.dumps(li)
print(dumpsed)
注:可以看到把li列表序列化成了二進制內容,不能正常查看
不從文件中反序列化:pickle.loads()
import pickle
li = ['alex',11,22,'ok','sb']
dumpsed = pickle.dumps(li)
print(dumpsed)
loadsed = pickle.loads(dumpsed)
print(loadsed)
json的序列化跟pickle一樣:
import json
json僅僅可以序列化int,float,bool,str,list,dict,None
dumps:返回的是字符串,而pickle返回的是字節
以上是“pickle如何實現json序列化”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。