pickle を使用して辞書 (またはその他の Python オブジェクト) を保存するにはどうすればよいですか? [重複] 質問する

pickle を使用して辞書 (またはその他の Python オブジェクト) を保存するにはどうすればよいですか? [重複] 質問する

私は、pickle の Python ドキュメントは示していますが、まだ少し混乱しています。新しいファイルを書き込んでから、pickle を使用して辞書をダンプするサンプル コードは何でしょうか。

ベストアンサー1

これを試して:

import pickle

a = {'hello': 'world'}

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

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

print(a == b)

上記のソリューションには、オブジェクトに固有のものは何もありませんdict。この同じアプローチは、任意のクラスのインスタンスや任意の複雑なデータ構造のネストを含む、多くの Python オブジェクトで機能します。たとえば、2 行目を次の行に置き換えます。

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

Trueも同様の結果を生成します。

一部のオブジェクトは、その性質上、pickle 化できません。たとえば、開いているファイルへのハンドルを含む構造体を pickle 化しても意味がありません。

おすすめ記事