1

ここで尋ねた以前の質問 (クラスの機能を別のクラスに組み合わせる最も適切な方法は? ) に従って、最終的に理解できるようになった答えを得ました。要するに、私が今意図しているのは、たくさんの辞書を用意することです。各辞書は次のようになります。

{ "url": "http://....", "parser": SomeParserClass } 

後でさらにプロパティが追加される可能性がありますが、文字列またはその他のクラスが含まれます。私の質問は、これらのオブジェクトを保存する最良の方法は何ですか?

私は 3 つの解決策を思いつきましたが、どれが最適か、他にもっと受け入れられる解決策があるかどうかはわかりません。

  1. pickle を使用すると効率的ですが、バイナリ形式で保存されるため、これらの辞書を編集するのは面倒です。

  2. 各ディクショナリを個別のモジュールに保存し、これらのモジュールを単一のディレクトリから動的にインポートします。各モジュールには、ディクショナリを返す関数、またはそれを保持する特別に細工された変数名が含まれているため、ロード コードから呼び出すことができます。これは編集が簡単に思えますが、非常に効率的またはPythonicに聞こえません

  3. これらのオブジェクトを保存するためにMongoDBやRiakのようなある種のデータベースを使用してください.辞書、これらのデータベースがそのようなオブジェクトをどのようにシリアル化または「ピクル」するかわかりません。

ご覧のとおり、私の主な関心事は、それらを編集するのがどれほど簡単か、データの保存と取得の効率 (ただし、これらは数百しかないので大きな懸念ではありません)、およびソリューションの正確さです。

それで、何か考えはありますか?

あなたが提供できるかもしれないどんな助けでも前もって感謝します.

4

2 に答える 2

3

JSON を使用します。Python 辞書をサポートし、簡単に編集できます。

于 2013-08-27T13:47:24.800 に答える
0

shelveを試すことができます。の上に構築されてpickleおり、オブジェクトをシリアル化し、それらを文字列キーに関連付けることができます。

に基づいているためdbm、必要なときにのみキー/値にアクセスします。そのため、大きなディクショナリからいくつかのアイテムにアクセスするだけでよい場合は、最初に JSON ファイル全体をディクショナリにロードする必要がある よりも、shelveの方が適している可能性があります。json

于 2013-08-27T16:11:44.770 に答える