sql >> Base de Datos >  >> NoSQL >> MongoDB

Diccionario de Python:eliminando u' chars

Algunas bases de datos como Sqlite3 le permiten definir funciones de convertidor y adaptador para que pueda recuperar texto como str en lugar de unicode . Desafortunadamente, MongoDB no proporciona esta opción para ninguno de los tipos comúnmente necesarios, como 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

Habiendo eliminado las opciones de Mongo, eso deja escribir el código de Python para hacer la conversión después de recuperar los datos. Podría escribir una función recursiva que recorra el resultado para convertir cada campo.

Como alternativa rápida y sucia, aquí hay un pequeño truco que puede ser útil:

>>> import json, ast
>>> r = {u'name': u'A', u'primary_key': 1}
>>> ast.literal_eval(json.dumps(r))
{'name': 'A', 'primary_key': 1}