首頁  >  文章  >  後端開發  >  python序列化功能之json&pickle的詳細介紹

python序列化功能之json&pickle的詳細介紹

高洛峰
高洛峰原創
2017-03-26 17:27:511488瀏覽

json模組是個非常重要的模組,可以實現任何語言之間跨平台的資料交換,還可以實現一些比較簡單的資料類型的持久化。 (這裡的持久化就是說,把python內部一些比較簡單的資料類型,比如說像字串,列表,元組,字典之類的資料類型,轉換為json字串的標準格式,保存到硬碟中。 )

json模組常用函數:

json.dumps():將python以字典為主的資料類型,包括(列表,元組,等)轉換為json字串。

json.loads():將json字串轉換為python可識別的資料型別。

json.dump():將python以字典為主的資料類型,包括(列表,元組,字串)轉換為json字串,並且透過檔案句柄,將轉換後的json字串寫入到文件中。

json.load():透過檔案句柄,直接從檔案讀取json字串,然後轉換為python可識別的資料類型。

pickle模組,只支援python程式之間的資料交換,可以將python中一些比較複雜的資料類型,持久化。

(pickle不僅可以將字典,列表,元組,之類比較簡單的數據類型保存到硬碟,還可以持久化一些比較複雜的數據類型,比如函數,類,對像等都可以存放到硬碟!的資料類型轉換為特殊字串或位元組(注意!在python2.7版本中pickle.dumps會將python的資料類型轉換為不可讀的字串類型,在python3以上的版本使用pickle.dumps函數會直轉換為bytes位元組。

pickle.dump()作用和dumps一樣,只不過是直接透過檔案句柄寫入到檔案中。

pickle.load()直接從檔案中讀取字節,解析成python可識別的資料類型。

最後總結下json模組和pickle模組的特點:

json和pickle都可以做到資料類型序列化和持久化功能。

json可以做跨平台(跨語言)的資料交換,pickle不能,pickle只能實作python和python之間的資料交換。

pickle幾乎可以持久化python中所有的資料類型,類,對象,函數都可以,但是json做不到,json只能持久化一些比較簡單的資料類型,例如,字串,列表,元組,字典等。

以上是python序列化功能之json&pickle的詳細介紹的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn