Alcuni database come Sqlite3 ti consentono di definire le funzioni del convertitore e dell'adattatore in modo da poter recuperare il testo come str anziché unicode . Sfortunatamente, MongoDB non fornisce questa opzione per nessuno dei tipi comunemente necessari come str, decimal o 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
Avendo eliminato le opzioni di Mongo, ciò lascia la scrittura del codice Python per eseguire la conversione dopo che i dati sono stati recuperati. Potresti scrivere una funzione ricorsiva che attraversi il risultato per convertire ogni campo.
Come alternativa rapida e sporca, ecco un piccolo trucco che potrebbe essere utile:
>>> import json, ast
>>> r = {u'name': u'A', u'primary_key': 1}
>>> ast.literal_eval(json.dumps(r))
{'name': 'A', 'primary_key': 1}