Sommige databases zoals Sqlite3 laten u converter- en adapterfuncties definiëren, zodat u tekst kunt ophalen als str in plaats van unicode . Helaas biedt MongoDB deze optie niet voor de veelgebruikte typen zoals str, decimal of 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
Nadat Mongo-opties zijn geëlimineerd, blijft het schrijven van Python-code over om de conversie uit te voeren nadat de gegevens zijn opgehaald. Je zou een recursieve functie kunnen schrijven die het resultaat doorloopt om elk veld te converteren.
Als een snel en vies alternatief is hier een kleine hack die van pas kan komen:
>>> import json, ast
>>> r = {u'name': u'A', u'primary_key': 1}
>>> ast.literal_eval(json.dumps(r))
{'name': 'A', 'primary_key': 1}