Bei einigen Datenbanken wie Sqlite3 können Sie Konverter- und Adapterfunktionen definieren, sodass Sie Text als str abrufen können statt unicode . Leider bietet MongoDB diese Option für keinen der häufig benötigten Typen wie str, decimal oder 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
Nachdem die Mongo-Optionen eliminiert wurden, bleibt das Schreiben von Python-Code übrig, um die Konvertierung durchzuführen, nachdem die Daten abgerufen wurden. Sie könnten eine rekursive Funktion schreiben, die das Ergebnis durchläuft, um jedes Feld zu konvertieren.
Als Quick-and-Dirty-Alternative ist hier ein kleiner Hack, der nützlich sein könnte:
>>> import json, ast
>>> r = {u'name': u'A', u'primary_key': 1}
>>> ast.literal_eval(json.dumps(r))
{'name': 'A', 'primary_key': 1}