3

検索できるさまざまなフィールドを持つPythonオブジェクトを保持できるデータベースのような構造を探しています。一部の検索でZODBが生成されますが、それが必要かどうかはわかりません。

説明するために、私は与えられたファイル形式でディスクから読み書きできるオブジェクトを持っています。それらのオブジェクトの多くのセットを整理して検索する方法が欲しいです。現在、ファイルシステムの構造とファイル名に基づいて入力されたネストされた辞書にそれらを保存しています。

もっとデータベースのようなアプローチが欲しいのですが、データベースは必要ないと思います。構造をディスクに保存できるようにしたいのですが、サーバーなどとのインターフェースは必要ありません。たぶん私はnumpyの構造化配列を使いたいだけですか?http://docs.scipy.org/doc/numpy/user/basics.rec.html

4

3 に答える 3

3

Pythonにはデータベースが付属しています... http://docs.python.org/library/sqlite3.html

于 2012-09-07T17:11:12.903 に答える
1

データをディスクに保存するだけの場合は、Pythonシェルフを探していると思います。また、dictインターフェースにほぼ100%準拠しているため、コードをほとんど変更する必要はありません。

于 2012-09-07T17:18:34.987 に答える
1

ZODBはあなたが探していることをします。すでに持っているのとまったく同じように、そこでデータを構造化することができます。組み込みのdictを使用する代わりに、永続的なマッピングに切り替える必要があります。それらが大きくなる傾向がある場合は、最初からbtreeから始める必要があります。ここ簡単な例とチュートリアルでさらに読むためのいくつかの良い出発点です。ご覧のとおり、ZODBはSQLのようなアクセス言語を提供していません。しかし、すでにいくつかの辞書に収まるようにデータを構造化したように見えるので、とにかくそれを見逃すことはないでしょう。ZODBは、プレーンシェルフと比較して、データをディスクに書き込む前にその場でデータを圧縮することもできます。一般的に、それは棚よりもはるかに多くのオプションを提供し、それと比較して今では重大な欠点を示しているので、私はそれを暖かくお勧めすることができます。1年前に切り替えました。これは、ORMを使用する一般的なリレーショナルDBのパフォーマンスが、特に挿入または更新操作で非常に遅いためです。ZODBを使用すると、アプリケーションとデータベースの間に通信のオーバーヘッドがないため、ここでは1桁速くなります。

于 2012-09-26T22:31:14.360 に答える