0

私は辞書を持っています:

d = {"a": 1, "b": 2, "c": 3 }

私がやりたいことは、この辞書をファイルにダンプし、プログラムによって生成されたデータを少しずつ追加することだけです。プログラムの実行中に辞書データをメモリに保持したくありません。最後に、このファイルを別のプログラムから python 構造にロードできるようにしたいと考えています。

pickleまたはjson別のpythonモジュールを使用してこれを行う解決策はありますか? pickle ファイルでダンプされたオブジェクトに追加できないことはわかっています。

私はこのようなことができることを知っています:

d = pickle.load(open(fileName, 'rb'))
d.update(dictWithNewValues)
pickle.dump(d, open(fileName, 'wb'))

ここで説明されているように。しかし、私はそれを徐々にやりたいと思っています.辞書には一意のキーがあるため、これを行うのは難しいかもしれないことを理解しています.それを追加するには、競合を避けるために現在のキーを知る必要があります(同じキーを持つエントリ..)。

listでは、または別の python オブジェクトでそれを行う方法はありますか?

4

1 に答える 1

2

辞書のキーがすべて文字列であると仮定すると、最も単純なオプションは Python のshelveモジュールです。shelve は永続的な辞書のように動作し、任意のキーを更新できます。

もう 1 つのオプションは、すべてのanydbmが文字列である必要があるモジュールです。

于 2012-07-25T14:44:16.430 に答える