pickle和json檔案對比

2021-10-03 01:42:27 字數 710 閱讀 4145

python中的json模組和pickle都是用於資料的序列化和反序列化,它們提供的方法也是一樣的:dumps,dump,loads,load

dumps(obj):將物件序列化為str。

dump(obj, fp):將物件序列化為str,並存入檔案中。

loads(s):將(序列化後的)字串反序列化為python物件。

load(fp):將檔案中的(序列化後的)字串反序列化為python物件。

json和pickle模組雖然都是用於資料的序列化和反序列化,但它們之間還是有許多區別的,或者說各有各的優點和缺點:

通用性:

json序列化後的字串是通用的格式(普通的字串)在不同的平台和語言都可以識別,而pickle序列化後的字串只有python可以識別(python專用序列化模組)

處理的資料型別:

json能序列化的物件只是python中基礎資料型別,而pickle能序列化python中所有的資料型別。

處理後的資料型別:

json序列化後的字串是文字型別(記事本開啟檔案後或者print列印後,你也能看懂其中的內容),而pickle序列化後的字串是二進位製流資料(記事本開啟後或者print列印後就完全看不懂裡面的內容了)。所以在進行檔案操作時注意使用的是哪個模組,是否需要以b的格式開啟。

使用空間:

json需要的儲存空間較小,pickle需要的儲存空間較大。

pickle模組 和json模組

pickle和json序列號 json模組是所有語言通用的,可以用來把一些資料轉成字串儲存在檔案中 import json l 1,2,3 with open t3 mode w encoding utf 8 as f print json.dump l,f import json l 1,2,3 ...

python的json和pickle模組

一。序列化反序列化01 什麼是序列化 反序列化 序列化就是將記憶體中的資料結構轉換成一種中間格式儲存到硬碟或者基於網路傳輸 發序列化就是硬碟中或者網路中傳來的一種資料格式轉換成記憶體中資料結構 02 為什要有 1 可以儲存程式的執行狀態 2 資料的跨平台互動 03 怎麼用 json 優點 跨平台性強...

python模組(json和pickle模組)

json和pickle模組,兩個都是用於序列化的模組 json模組,用於字串與python資料型別之間的轉換 pickle模組,用於python特有型別與python資料型別之間的轉換 兩個模組,都提供了dumps,dump,loads,load 4個功能 1 import json 2 s 用js...