いくつかのデータ構造を含むピクルスファイルがあります。要素の正確な量と種類はわかりません。すべてのオブジェクトを辞書またはリストに入れる方法は?
問題は、エントリ数がわからないままファイルを反復処理する方法です。
すべてのオブジェクトは文字列として保存されますか?
編集:私はそのようなコードを使用してデータをファイルに保存しています:
import pickle
def _save(_file, *_obj):
with open(_file, 'w') as f:
for obj in _obj:
pickle.dump(obj, f)
私が今見ている唯一の解決策は、オブジェクトの数を最初のエントリとして保存することです。それを読んでから、他のすべてを読んでください。
その方法でデータを簡単に unpickle できます。
list_data = [1, 2, 3, 4]
dict_data = {1:'a', 2:'b'}
tuple_data = (1, 2, 3)
_save('my_pickle.pckl', list_data, dict_data, tuple_data)
with open('my_pickle.pckl', 'r') as f:
item1 = pickle.load(f)
print item1
item2 = pickle.load(f)
print item2
item3 = pickle.load(f)
print item3
これは私が望むものを与えてくれます...しかし、ループでそれを行う必要があります