アイテムを1つずつファイルにダンプすることができます。和解を必要とする2つの設計上の質問は次のとおりです。
- オブジェクトをメモリに格納するときに、どのように構築していますか?
- メモリが不足しているときに、データはどのように必要ですか?
ビルドプロセスが一度に与えられたキーに関連付けられた配列全体を移入した場合、あなただけのキーをダンプするかもしれません:アップデートに続いて
big_hairy_dictionary['sample_key'] = pre_existing_array
marshal.dump({'sample_key':big_hairy_dictionary['sample_key']},'central_file')
:別の辞書として、ファイル内の配列のペアをmarshal.load( 'central_file')を呼び出すたびに、中央辞書の更新に使用できる辞書が返されます。しかし、実際には、データが必要なときに、キーごとに 'central_file'の読み込みを処理する必要がある場合にのみ役立ちます。
代わりに、あなたが順不同に要素による配列要素を移植されている場合は、多分試してみてください。
big_hairy_dictionary['sample_key'].append(single_element)
marshal.dump(single_element,'marshaled_files/'+'sample_key')
その後、あなたはそれをバックロードするとき、あなたは必ずしも取得するために全体の辞書を構築する必要はありません。必要なものを取り戻す。それがNoneを返すまで、marshal.load( 'marshaled_files/sample_key')を呼び出すだけで、そのキーに関連するすべてのものが得られます。
質問を更新しました。オブジェクトはかなりシンプルで、配列の辞書です。各アレイは非常に小さいです。私は個々の配列をマーシャリングするだろうか?同じファイルに? – Parand