這是用于序列化的兩個模塊:
json:用于字符串和python數據類型間進行轉換
pickle:用于python特有的類型和python的數據類型間進行轉換
Json模塊提供了四個功能:dumps、dump、loads、load
pickle模塊提供了四個功能:dumps、dump、loads、load
pickle用法
dumps可以將數據類型轉換成序列化(只有python才認識)的字符串
>>>importpickle
>>>data={'name':'python','site':'pythontab.com'}
>>>pstr=pickle.dumps(data)
>>>printpstr
(dp0
S'name'
p1
S'python'
p2
sS'site'
p3
S'pythontab.com'
p4
s.
將數據轉換成序列化字符串,并寫入文件:
importpickle
data={'name':'python','site':'pythontab.com'}
#打開文件,然后將data寫入
withopen('dump.data','wb')asf:
pickle.dump(data,f)
#同樣讀取的時候也需要打開文件
withopen('dump.data','rb')asf:
data_load=pickle.load(f)
printdata_load
輸出結果
{'name':'python','site':'pythontab.com'}
文件中顯示的內容與上面一致
json的用法
json的用法和pickle是一樣的
importjson
data={'name':'python','site':'pythontab.com'}
jstr=json.dumps(data)
printjstr,type(jstr)
輸出結果
{"name":"python","site":"pythontab.com"}
注意:看起來好像是個字典,但要注意了,實際上這是個字符串,因為json只能是字符串格式,只是看起來像字典而已。
那pickle和json有什么區別呢?
json是可以在不同語言之間交換數據的,而pickle只在python之間使用。
json只能序列化最基本的數據類型,而pickle可以序列化所有的數據類型,包括類,函數都可以序列化。
以上內容為大家介紹了Python培訓之序列化模塊pickle和json的使用和區別,希望對大家有所幫助,如果想要了解更多Python相關知識,請關注IT培訓機構:千鋒教育。