首頁 > 後端開發 > Python教學 > 比較Python序列化模組pickle和json不同

比較Python序列化模組pickle和json不同

巴扎黑
發布: 2017-09-19 10:10:21
原創
1142 人瀏覽過

這是用於序列化的兩個模組:

• json: 用於字串和python資料型別間進行轉換

• pickle: 用於python特有的類型和python的資料型別間進行轉換

Json模組提供了四個功能:dumps、dump、loads、load 

pickle模組提供了四個功能:dumps、dump、loads、load

pickle用法

dumps可以將資料型別轉換成序列化(只有python才認識)的字串

>>> import pickle
>>> data = {'name':'python', 'site':'pythontab.com'}
>>> pstr = pickle.dumps(data)
>>> print pstr
(dp0
S'name'
p1
S'python'
p2
sS'site'
p3
S'pythontab.com'
p4
s.
登入後複製

將資料轉換成序列化字串,並寫入檔案:

import pickle
data = {'name':'python', 'site':'pythontab.com'}
#打开文件,然后将data写入
with open('dump.data', 'wb') as f:
    pickle.dump(data, f)
#同样读取的时候也需要打开文件
with open('dump.data', 'rb') as f:
    data_load = pickle.load(f)
print data_load
登入後複製

結果:

{'name':'python', 'site':'pythontab.com'}
登入後複製

檔案中顯示的內容與上面一致

json的用法

json的用法和pickle是一樣的

import json
data = {'name':'python', 'site':'pythontab.com'}
jstr = json.dumps(data)
print jstr, type(jstr)
登入後複製

 

結果:

{"name":"python", "site":"pythontab.com"} <type &#39;str&#39;>
登入後複製

 

注意: 看起來好像是字典,但要注意了,實際上這是一個字串,因為json只能是字串格式,只是看起來像字典而已。

那pickle和json有什麼差別呢?

json是可以在不同語言之間交換資料的,而pickle只在python之間使用。

json只能序列化最基本的資料類型,而pickle可以序列化所有的資料類型,包括類,函數都可以序列化。

以上是比較Python序列化模組pickle和json不同的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板