0

私は、さまざまな種類の概念オブジェクトとやり取りするための Python プログラムの作成に取り組んでいます。たとえば、人を表す場合、次のようになります。

type = "person"
name = "Bono"
profession = "performer"
nationality = "Irish"

ただし、雑誌を表す場合もあります。その場合、次のようになります。

type = "publication"
name = "Rolling Stone"
editor = ("Jann Wenner" , "Will Dana")
founding_year = "1967"

タイプと名前を除いて、他のすべてのフィールドはオプションです。これはトリッキーなビットです。これはスクレイパー用に記述されたコードの一部であるため、他のすべてのフィールドはその場で決定/作成されます。つまり、スクレイパーがコードに「editor」を吐き出すまで、「editor」フィールドが必要であることはわかりません。

理想的には、リストの Python 辞書としてかなり簡単に実装できます。ただし、多数のレコードを処理します。同時にメモリに保持するには多すぎます。その結果、データベースとの互換性を確保したいと考えています。Django の MVC のようなもので、レコード セットを簡単にクエリできるようにしたいと考えています。

私が検討したオプションの 1 つは Django フィールドセットでしたが、それらはまだベータ版のようで、格納できるデータの一般性が失われるのではないかと心配しています。キー、(value_list) のペア。フィールドセットまたはサンプルコードの実現可能性についての意見をお待ちしております。

私が検討したもう 1 つのオプションは、Django MVC と JSON の組み合わせです。この場合、オブジェクトごとに 3 つの列 (タイプ、名前、および属性) を作成します。属性は、他のすべての属性の JSON シリアル化 (または他の適切なピクル メソッド) になるため、オブジェクトを取得したら、その属性を再構成してセットをクエリできます。私はこれまたはこれ(リンク)のようなものを保存します。この方法では、辞書内の属性を簡単に検索できなくなります。

ご意見やご指導をいただければ幸いです。誰かが同様のプロジェクトを知っているなら、私は知りたいです.

4

1 に答える 1

1

これは、NoSQL データベースを使用する絶好の機会のようです。MongoDB のようなものは固定スキーマに依存しないため、シナリオに適している可能性があります。

于 2013-02-18T02:26:00.863 に答える