欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python使用pickle進(jìn)行序列化和反序列化的示例代碼

 更新時間:2020年09月22日 11:41:58   作者:諸子流  
這篇文章主要介紹了Python使用pickle進(jìn)行序列化和反序列化,幫助大家更好的理解和使用python的pickle庫,感興趣的朋友可以了解下

一、說明

早上看到Python使用pickle進(jìn)行序列化和反序列化,然后發(fā)現(xiàn)面臨的一個獲取不到返回值的框架,似乎可以通過在框架中先序列化,然后在外部進(jìn)行反序列化的方法來實(shí)現(xiàn)。就研究了一下pickle庫的具體使用。

本身也沒什么復(fù)雜,一方面還是怕忘記,另一方面是自從學(xué)Java聽到反序化這個詞開始就有一種莫明其妙的恐具感總覺得是什么高大上的東西。Java反序列化可參見“Java反序列化漏洞實(shí)現(xiàn)”。

二、代碼實(shí)現(xiàn)

import pickle


class BeSerializing:
 def __init__(self):
  self.var = "a test string."

 def print_var(self):
  print(f"self var value is:{self.var}")


class Serializing:
 def do_serializing(self):
  obj = BeSerializing()
  # with的好處是會最后自動釋放獲取的資源,對于文件就是最后會自己close()
  with open("test_pickle.obj", "wb") as file_handler:
   # 序列化,將對象寫到文件
   pickle.dump(obj, file_handler)


class DeSerializing:
 def do_serializing(self):
  with open("test_pickle.obj", "rb") as file_handler:
   # 反序列化,將對象從文件中還原
   # 注意,雖然python的變量不需要使用前先定義類型,但使用時是要被格式化成確定類型的
   # 所以,如果反序列化類和被序列化類不在同一文件中,那么需要將被序列化類import進(jìn)來,不然會因找不到被反序列化類而反序列化失敗
   obj = pickle.load(file_handler)
   print(f"obj type: {type(obj)}\n"
     f"obj.var value: {obj.var}")


if __name__ == "__main__":
 obj_se = Serializing()
 obj_se.do_serializing()
 obj_de = DeSerializing()
 obj_de.do_serializing()

運(yùn)行結(jié)果如下,可以看到成功反序列化并打印出被序列化的對象的變量的值:

參考:

https://docs.python.org/3/library/pickle.html

以上就是Python使用pickle進(jìn)行序列化和反序列化的示例代碼的詳細(xì)內(nèi)容,更多關(guān)于python 序列化和反序列化的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Python基礎(chǔ)知識+結(jié)構(gòu)+數(shù)據(jù)類型

    Python基礎(chǔ)知識+結(jié)構(gòu)+數(shù)據(jù)類型

    這篇文章主要介紹了Python基礎(chǔ)知識+結(jié)構(gòu)+數(shù)據(jù)類型,文章基于python基礎(chǔ)知識圍繞主題展開詳細(xì)內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-05-05
  • Python異常類型以及處理方法匯總

    Python異常類型以及處理方法匯總

    調(diào)試Python程序時,經(jīng)常會報出一些異常,下面這篇文章主要給大家介紹了關(guān)于Python異常類型以及處理方法的相關(guān)資料,需要的朋友可以參考下
    2021-06-06
  • 一文講解如何查看python腳本所依賴三方包及其版本

    一文講解如何查看python腳本所依賴三方包及其版本

    Python因?yàn)榫哂谐嗟牡谌綆於淮蠹蚁矚g,下面這篇文章主要給大家介紹了關(guān)于如何查看python腳本所依賴三方包及其版本的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2023-03-03
  • Django celery異步任務(wù)實(shí)現(xiàn)代碼示例

    Django celery異步任務(wù)實(shí)現(xiàn)代碼示例

    這篇文章主要介紹了Django celery異步任務(wù)實(shí)現(xiàn)代碼示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-11-11
  • pyinstaller打包exe程序的步驟和添加依賴文件的實(shí)現(xiàn)

    pyinstaller打包exe程序的步驟和添加依賴文件的實(shí)現(xiàn)

    這篇文章主要介紹了pyinstaller打包exe程序的步驟和添加依賴文件的實(shí)現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-02-02
  • Python列表(list)、字典(dict)、字符串(string)基本操作小結(jié)

    Python列表(list)、字典(dict)、字符串(string)基本操作小結(jié)

    這篇文章主要介紹了Python列表(list)、字典(dict)、字符串(string)基本操作小結(jié),本文總結(jié)了最基本最常用的一些操作,需要的朋友可以參考下
    2014-11-11
  • 詳解Python中的Dict

    詳解Python中的Dict

    這篇文章主要為大家介紹了Python中的Dict,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2021-12-12
  • Python實(shí)現(xiàn)聊天機(jī)器人的示例代碼

    Python實(shí)現(xiàn)聊天機(jī)器人的示例代碼

    這篇文章主要介紹了Python實(shí)現(xiàn)聊天機(jī)器人,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-07-07
  • Python入門Anaconda和Pycharm的安裝和配置詳解

    Python入門Anaconda和Pycharm的安裝和配置詳解

    這篇文章主要介紹了Python入門Anaconda和Pycharm的安裝和配置詳解,文章通過圖文介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • Python連接Mssql基礎(chǔ)教程之Python庫pymssql

    Python連接Mssql基礎(chǔ)教程之Python庫pymssql

    這篇文章主要給大家介紹了關(guān)于Python連接Mssql基礎(chǔ)教程之Python庫pymssql的相關(guān)資料,文中分別介紹了連接數(shù)據(jù)庫、游標(biāo)使用注意事項(xiàng)、游標(biāo)返回行為字典變量、使用with語句(上下文管理器)以及調(diào)用存儲過程等的實(shí)現(xiàn),需要的朋友可以參考下
    2018-09-09

最新評論