1

PDF を txt ファイルに変換するワークフローを自動化する Python スクリプトを作成しました。これらのファイルを MongoDB に保存してクエリできるようにしたいと考えています。.txt ファイルを JSON/BSON に変換する必要がありますか? PyMongo のようなプログラムを使用する必要がありますか?

これを支援するツールは言うまでもなく、そのようなプロジェクトのステップがどうなるかはわかりません。

この投稿を見てきました: Mongodb にテキスト ファイルを追加するにはどうすればよいですか? 、ファイルを JSON ファイルに変換し、おそらく GridFS を統合する必要があると思いますか?

4

2 に答える 2

5

ドライバーを使用している場合は、JSON/BSON エンコードする必要はありません。MongoDB シェルを使用している場合は、コンテンツを貼り付けるときに心配する必要があります。

Python MongoDB driverを使用することをお勧めします:

from pymongo import MongoClient

client = MongoClient()
db = client.test_database  # use a database called "test_database"
collection = db.files   # and inside that DB, a collection called "files"

f = open('test_file_name.txt')  # open a file
text = f.read()    # read the entire contents, should be UTF-8 text

# build a document to be inserted
text_file_doc = {"file_name": "test_file_name.txt", "contents" : text }
# insert the contents into the "file" collection
collection.insert(text_file_doc)

(未テストのコード)

ファイル名が一意であることを確認した場合_idは、ドキュメントのプロパティを設定して、次のように取得できます。

text_file_doc = collection.find_one({"_id": "test_file_name.txt"})

または、file_name上記のプロパティにインデックスが付けられていることを確認して、次のようにすることもできます。

text_file_doc = collection.find_one({"file_name": "test_file_name.txt"})

他のオプションは GridFS を使用することですが、小さなファイルには推奨されないことがよくあります。

ここには、Python と GridFSのスターターがあります。

于 2013-04-30T20:44:12.840 に答える