Pythonにおけるpickle化とunpickling🥒


漬物は何ですか。


In Layman's terms, Pickling is a process to convert your python objects into a file.


技術的に言えば、リスト、セット、タプル、辞書、文字列、パンダのデータグラムのようなよく知られたPythonオブジェクトを変換する方法です.を指定します.そして、その文字ストリームは、他のスクリプトでそのPythonオブジェクトを再構築するのに必要なすべての情報を含んでいます.

❗Note Pickling ≠ Compression → They both are completely different!


すべてのそれらのプログラミングオタクのために🤓 そこから、オブジェクトをファイルに変換するプロセスは、直列化またはマーシャリングまたは平坦化として公知である.
ファイルから後ろにそのオブジェクトを検索することは、逆シリアル化またはunmarshallingまたはunflatteningとして知られています.
Pythonは pickle シリアル化/逆シリアル化を行うモジュールです.
辞書をファイルに入れたいとしましょう.
  • まず第一に、我々は輸入する必要がありますpickle ,
  • import pickle
    #A Sacred Dictionary 😌
    sacred_dict = {"name":"Gaitonde", "location":"Chand 🌙" ,
                  "side-kick":"Bunty" }
    
    使い方を見てみましょう.
    ここに簡単な手順があります.
  • この辞書を保存するファイルを開く/作成します.
  • 呼び出しpickle.dump() 辞書とファイルオブジェクトを渡します.
  • """
    w  => Write mode
    b  => Binary mode
    wb => Write in binary mode
    """
    with open("sacred.pkl", "wb") as f:
            pickle.dump(sacred_dict, f)
    
  • 最後のスニペット「神聖な. pkl」ファイルを実行するとき、それが存在しないなら、sacred_dict 文字ストリームの形式で.
  • 現在の作業ディレクトリに置かれます.また、どこか他に保存する場合は、正確なファイルのパスを渡すことができます!
  • それは、あなたの辞書をファイルに格納している!イージーペイ😁
    それでは、その辞書を解凍したり戻したりする方法を見てみましょう.

    The .pkl extension is just a convention that helps us identify it as a pickle file.


    オブジェクトを取り戻すには、pickle.load() pickle化されたファイルのファイルオブジェクトを渡すメソッドです.
    """
    r  => Read mode
    b  => Binary mode
    rb => Read in Binary mode
    """
    with open("sacred.pkl", "rb") as f:
            retreived_dict = pickle.load(f)
    
    #Let's print retreived_dict to confirm 
    print(retreived_dict)
    
    #Output
    #{'name': 'Gaitonde', 'location': 'Chand 🌙', 'side-kick': 'Bunty'}
    

    漬けることとunpicklingの間の重要な点

  • Python固有のプロトコルで、Pythonで他のプログラミング言語でpickle化されたファイルをunpickleしようとしないでください.したがって、言語間の互換性は保証されません.
  • さらに、Pythonの異なるバージョンでpickle化されたファイルをunpickle化することは、必ずしも適切に動作するとは限りません.
  • pickleモジュールは安全ではありません.あなたが信頼するデータをpickle化するだけです.
  • That doesn't mean, you should not use pickle module. Just make sure you trust the source of that pickle file.