我有以下代码:
students_list = []
for student in students:
student_dict = {}
dict_student['nane'] = name
logger.info(student_dict['name'])
# prints ==> MÓNICA MENÉNDEZ GALLEGOS
dict_student['address'] = address
logger.info(student_dict['address'])
# prints ==> GENERAL YAGÜE 32
students_list.append(dict_student)
logger.info(students_list)
# prints => [{'name':u'M\xd3NICA MEN\xc9NDEZ GALLEGOS', 'address': u'GENERAL YAG\xdcE 32}
正如您所看到的,这是一段非常简单的代码。我得到一个值,将其分配给字典并将所述字典附加到列表中。
令我烦恼的是,当我记录 student_dict['name']
的值时,我可以正确地看到所有字符。
但是,当我记录整个列表时,其数据无法正确显示。
这是为什么?
最佳答案
您正在看到repr列表中字符串的表示形式:
[{'name':u'M\xd3NICA MEN\xc9NDEZ GALLEGOS', 'address': u'GENERAL YAG\xdcE 32}
当您打印时,您将看到 str
输出。
它们都是相同的 unicode 字符串:
In [1]: (l[0]["address"])
Out[1]: u'GENERAL YAG\xdcE 32'
In [2]: (l[0]["address"]) == u"GENERAL YAGÜE 32"
Out[2]: True
关于Python。相同的字符串以不同的编码出现?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28281688/