Některé databáze, jako je Sqlite3, umožňují definovat funkce převodníku a adaptéru, takže můžete načíst text jako str spíše než unicode . Bohužel MongoDB neposkytuje tuto možnost pro žádný z běžně potřebných typů, jako je str, decimal nebo 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
Po eliminaci možností Mongo to ponechává psaní kódu Python, aby se konverze provedla po načtení dat. Mohli byste napsat rekurzivní funkci, která projde výsledkem a převede každé pole.
Jako rychlou a špinavou alternativu je zde malý hack, který se může hodit:
>>> import json, ast
>>> r = {u'name': u'A', u'primary_key': 1}
>>> ast.literal_eval(json.dumps(r))
{'name': 'A', 'primary_key': 1}