最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python序列化pickle模塊使用詳解

 更新時間:2020年03月05日 10:02:46   作者:lincappu  
這篇文章主要介紹了Python序列化pickle模塊使用詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

用于序列化的兩個模塊

  •   json:用于字符串和Python數(shù)據(jù)類型間進行轉換
  •   pickle: 用于python特有的類型和python的數(shù)據(jù)類型間進行轉換
  •   json提供四個功能:dumps,dump,loads,load
  •   pickle提供四個功能:dumps,dump,loads,load

pickle可以存儲什么類型的數(shù)據(jù)呢?

所有python支持的原生類型:布爾值,整數(shù),浮點數(shù),復數(shù),字符串,字節(jié),None。

由任何原生類型組成的列表,元組,字典和集合。

函數(shù),類,類的實例

pickle模塊中常用的方法有:

1. pickle.dump(obj, file, protocol=None,)

必填參數(shù)obj表示將要封裝的對象

必填參數(shù)file表示obj要寫入的文件對象,file必須以二進制可寫模式打開,即“wb”

可選參數(shù)protocol表示告知pickler使用的協(xié)議,支持的協(xié)議有0,1,2,3,默認的協(xié)議是添加在Python 3中的協(xié)議3?!  ?/p>

  • Protocol version 0 is the original “human-readable” protocol and is backwards compatible with earlier versions of Python.
  • Protocol version 1 is an old binary format which is also compatible with earlier versions of Python.
  • Protocol version 2 was introduced in Python 2.3. It provides much more efficient pickling of new-style classes. Refer to PEP 307 for information about improvements brought by protocol 2.
  • Protocol version 3 was added in Python 3.0. It has explicit support for bytes objects and cannot be unpickled by Python 2.x. This is the default protocol, and the recommended protocol when compatibility with other Python 3 versions is required.
  • Protocol version 4 was added in Python 3.4. It adds support for very large objects, pickling more kinds of objects, and some data format optimizations. Refer to PEP 3154 for information about improvements brought by protocol 4.

2. pickle.load(file,*,fix_imports=True, encoding="ASCII", errors="strict")

必填參數(shù)file必須以二進制可讀模式打開,即“rb”,其他都為可選參數(shù)

3. pickle.dumps(obj):以字節(jié)對象形式返回封裝的對象,不需要寫入文件中

4. pickle.loads(bytes_object): 從字節(jié)對象中讀取被封裝的對象,并返回

pickle模塊可能出現(xiàn)三種異常:

1. PickleError:封裝和拆封時出現(xiàn)的異常類,繼承自Exception

2. PicklingError: 遇到不可封裝的對象時出現(xiàn)的異常,繼承自PickleError

3. UnPicklingError: 拆封對象過程中出現(xiàn)的異常,繼承自PickleError

應用:

# dumps功能
import pickle
data = ['aa', 'bb', 'cc'] 
# dumps 將數(shù)據(jù)通過特殊的形式轉換為只有python語言認識的字符串
p_str = pickle.dumps(data)
print(p_str)   7 b'\x80\x03]q\x00(X\x02\x00\x00\x00aaq\x01X\x02\x00\x00\x00bbq\x02X\x02\x00\x00\x00ccq\x03e.
 # loads功能
 # loads 將pickle數(shù)據(jù)轉換為python的數(shù)據(jù)結構
 mes = pickle.loads(p_str)
 print(mes)
 ['aa', 'bb', 'cc']
 # dump功能
 # dump 將數(shù)據(jù)通過特殊的形式轉換為只有python語言認識的字符串,并寫入文件
 with open('D:/tmp.pk', 'w') as f:
  pickle.dump(data, f)
 # load功能
 # load 從數(shù)據(jù)文件中讀取數(shù)據(jù),并轉換為python的數(shù)據(jù)結構
 with open('D:/tmp.pk', 'r') as f:
  data = pickle.load(f)

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • Python保存dict字典類型數(shù)據(jù)到Mysql并自動創(chuàng)建表與列

    Python保存dict字典類型數(shù)據(jù)到Mysql并自動創(chuàng)建表與列

    這篇文章主要介紹了Python保存dict字典類型數(shù)據(jù)到Mysql并自動創(chuàng)建表與列,字典是另一種可變容器模型,且可存儲任意類型對象,想了解更多內容的小伙伴可以和小編一起進入下面文章學習更多內容,希望對你有所幫助
    2022-02-02
  • Python的一些用法分享

    Python的一些用法分享

    前不久學了點python,昨天剛好要處理一個文件,于是拿來試試
    2012-10-10
  • 詳解如何使用Python處理INI、YAML和JSON配置文件

    詳解如何使用Python處理INI、YAML和JSON配置文件

    在軟件開發(fā)中,配置文件是存儲程序配置信息的常見方式,INI、YAML和JSON是常用的配置文件格式,各自有著特定的結構和用途,Python擁有豐富的庫和模塊,本文將重點探討如何使用Python處理這三種格式的配置文件,需要的朋友可以參考下
    2023-12-12
  • 一行python實現(xiàn)樹形結構的方法

    一行python實現(xiàn)樹形結構的方法

    今天小編就為大家分享一篇一行python實現(xiàn)樹形結構的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-08-08
  • 如何利用Python開發(fā)一個簡單的猜數(shù)字游戲

    如何利用Python開發(fā)一個簡單的猜數(shù)字游戲

    這篇文章主要給大家介紹了關于如何利用Python開發(fā)一個簡單的猜數(shù)字游戲的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用Python具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-09-09
  • 最新版 Windows10上安裝Python 3.8.5的步驟詳解

    最新版 Windows10上安裝Python 3.8.5的步驟詳解

    這篇文章主要介紹了最新版 Windows10上安裝Python 3.8.5的步驟詳解,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-11-11
  • 基于Python實現(xiàn)Hash算法

    基于Python實現(xiàn)Hash算法

    這篇文章主要介紹了基于Python實現(xiàn)Hash算法,最簡單的hash算法是用取余的方式,根據(jù)hash地址存放數(shù)據(jù),這需要提供鍵值對Key地址,value是存放的數(shù)據(jù),下文相關內容需要的小伙伴可以參考一下
    2022-03-03
  • 基于pytorch的lstm參數(shù)使用詳解

    基于pytorch的lstm參數(shù)使用詳解

    今天小編就為大家分享一篇基于pytorch的lstm參數(shù)使用詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-01-01
  • Django 中自定義 Admin 樣式與功能的實現(xiàn)方法

    Django 中自定義 Admin 樣式與功能的實現(xiàn)方法

    這篇文章主要介紹了Django 中自定義 Admin 樣式與功能的實現(xiàn)方法,本文圖文并茂給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-07-07
  • python中l(wèi)ist方法詳解

    python中l(wèi)ist方法詳解

    list 是 Python 中的一種內置數(shù)據(jù)類型,代表一個可變的有序序列。list 類型的對象可以使用多個方法來操作和修改其中的元素。文中通過代碼示例詳細介紹了list的常用方法,感興趣的同學可以參考閱讀
    2023-04-04

最新評論

修水县| 中卫市| 牙克石市| 喀什市| 仙居县| 黄骅市| 湛江市| 宣化县| 乾安县| 江达县| 仁化县| 洪江市| 南靖县| 深圳市| 比如县| 南和县| 沁水县| 伊春市| 安泽县| 达孜县| 十堰市| 长白| 紫金县| 惠东县| 六盘水市| 梨树县| 高陵县| 岐山县| 固始县| 华安县| 金寨县| 盐山县| 土默特右旗| 祥云县| 大厂| 翁源县| 康保县| 台江县| 西安市| 门源| 类乌齐县|