ホームページ >バックエンド開発 >Python チュートリアル >Python の Pickle モジュールはどのようにオブジェクトをシリアル化および逆シリアル化するのでしょうか?

Python の Pickle モジュールはどのようにオブジェクトをシリアル化および逆シリアル化するのでしょうか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-29 01:05:12971ブラウズ

How Does Python's Pickle Module Serialize and Deserialize Objects?

オブジェクトのシリアル化のための Pickle について: Python オブジェクトの保存

Python の Pickle は、Python オブジェクトを保存用のバイナリ形式にシリアル化する便利なメカニズムを提供しますまたは送信。 pickle を使用すると、辞書を含む複雑なデータ構造をファイルまたはバイトのようなオブジェクトにシームレスに保存できます。

辞書のシリアル化

新しいファイルを書き込むには、 pickle を使用して辞書をダンプするには、次の手順に従います。

import pickle

a = {'hello': 'world'}

with open('filename.pickle', 'wb') as handle:
    pickle.dump(a, handle, protocol=pickle.HIGHEST_PROTOCOL)

pickle.dump() メソッド辞書「a」をバイナリファイル「filename.pickle」にシリアル化します。プロトコル引数は、シリアル化互換性のレベルを指定します。

逆シリアル化

ファイルからシリアル化された辞書を取得するには:

with open('filename.pickle', 'rb') as handle:
    b = pickle.load(handle)

ピクル。 load() メソッドはバイナリ データを読み取り、元の辞書を再構築します。 'b'.

辞書を超えた汎用性

Pickle は辞書のシリアル化に限定されません。カスタム クラスのインスタンスや複雑なデータ構造を含む、さまざまな Python オブジェクトを処理できます。例:

import datetime
today = datetime.datetime.now()
a = [{'hello': 'world'}, 1, 2.3333, 4, True, "x",
     ("y", [[["z"], "y"], "x"]), {'today', today}]

制限事項

ピクルは多用途ですが、一部のオブジェクトはピクルできません。これには、開いているファイル ハンドルなど、システム リソースに依存するオブジェクトが含まれます。

以上がPython の Pickle モジュールはどのようにオブジェクトをシリアル化および逆シリアル化するのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。