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中文網其他相關文章!