我正在处理一个包含西班牙语字符的数据库,如á,é,í,ñ等... 导入它们工作正常,并使用命令行显示字符在数据库中正确编码:
> use climaescolar
switched to 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"
}
(注意“Ú”和“á”正确显示)
但是,当我使用Pymongo处理答案时,字符以unicode格式显示:
from pymongo import MongoClient
client = MongoClient("127.0.0.1", 27017)
db = client["climaescolar"]
col = db.preguntas
print(col.find_one())
返回:
{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')}
(请注意“Únicarespuesta”显示为“\ xdanica respuesta”)
我在docs中阅读了有关unicode格式字符串的说明,但未能解决。有什么建议吗?
答案 0 :(得分:0)
我认为它是打印功能的一个特征,而不是pymongo。
如果您运行以下内容:
from pymongo import MongoClient
client = MongoClient("127.0.0.1", 27017)
db = client["climaescolar"]
col = db.preguntas
for key, value in col.find_one().iteritems():
print(u'{0}: {1}'.format(key, value))
你会得到
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