Sqlite3などの一部のデータベースでは、コンバーターとアダプターの関数を定義できるため、テキストを strとして取得できます。 unicodeではなく 。残念ながら、MongoDBは、str、decimal、datetimeなどの一般的に必要なタイプのいずれにもこのオプションを提供していません:
- http://api.mongodb.org/python/current/tutorial.html#a-note-on-unicode-strings
- http://api.mongodb.org/python/current/faq.html#how-can-i-store-decimal-decimal-instances
- http://api.mongodb.org/python/current/faq.html#how-can-i-save-a-datetime-date-instance
Mongoオプションを削除したため、データの取得後に変換を行うPythonコードを記述したままになります。結果をトラバースして各フィールドを変換する再帰関数を作成できます。
手っ取り早い代替手段として、役に立つかもしれないちょっとしたハックがあります:
>>> import json, ast
>>> r = {u'name': u'A', u'primary_key': 1}
>>> ast.literal_eval(json.dumps(r))
{'name': 'A', 'primary_key': 1}