i processing database contains spanish characters á, é, í, ñ, etc... importing them worked fine, , using command line shows characters correctly encoded in database:
> use climaescolar switched db climaescolar > db.preguntas.findone() { "_id" : objectid("55a912e69b874f7cc9afa322"), "indice" : "a-1", "pregunta" : "eres:", "tipologia" : "Única respuesta", "respuestas posibles" : 2, "respuestas maximas" : 1, "respuesta" : "1.hombre-2.mujer", "adicionales" : "95.respuesta anulada-96.no responde-97.marca más de una respuesta-98.opciones incompatibles/incompletas-99.en blanco" } (note "Ú" , "á" displayed correctly)
however, when process answers using pymongo, characters appear in unicode format:
from pymongo import mongoclient client = mongoclient("127.0.0.1", 27017) db = client["climaescolar"] col = db.preguntas print(col.find_one()) returns:
{u'respuesta': u'1.hombre-2.mujer', u'respuestas posibles': 2, u'pregunta': u'eres:', u'respuestas maximas': 1, u'tipologia': u'\xdanica respuesta', u'\ufeffindice': u'a-1', u'adicionales': u'95.respuesta anulada-96.no responde-97.marca m\xe1s de una respuesta-98.opciones incompatibles/incompletas-99.en blanco', u'_id': objectid('55a912e69b874f7cc9afa322')} (note "Única respuesta" appears "\xdanica respuesta" )
i read note on unicode format strings in docs, have not been able solve it. suggestions?
i think feature of print function, not pymongo.
if run following:
from pymongo import mongoclient client = mongoclient("127.0.0.1", 27017) db = client["climaescolar"] col = db.preguntas key, value in col.find_one().iteritems(): print(u'{0}: {1}'.format(key, value)) you get
indice:a-1 respuesta:1.hombre-2.mujer respuestas posibles:2.0 pregunta:eres: respuestas maximas:1.0 tipologia:Única respuesta adicionales:95.respuesta anulada-96.no responde-97.marca más de una respuesta-98.opciones incompatibles/incompletas-99.en blanco _id:55a9272ef7ba789df8b5c858
Comments
Post a Comment