![](/img/trans.png)
[英]How do convert unicode escape sequences to unicode characters in a python string
[英]Unicode characters printed as escape sequences inside python object
我正在使用python 2.7.13。 我的python脚本生成了一个字典,其中包含希伯来语。
代码如下,
# -*- coding: utf-8 -*-
val = "אבג".decode('utf-8')
print val
dict = {
'attributes' : {
'OBJECTID_1' : 1,
'LOCID' : val
}
}
print dict
结果如下,
אבג
{'attributes': {'LOCID': u'\u05d0\u05d1\u05d2', 'OBJECTID_1': 1}}
由于我们使用“打印”,因此第一个结果按预期显示。 但是,在我创建的字典中,希伯来语显示为unicode。
无论如何,在我的词典中是否可以显示实际的希伯来语? 还是这是预期的?
谢谢
在python2中,当您打印出一个列表时,最终将打印该列表内容的repr
。
在python3中,字符串的repr
与其str
返回值相同。 您可以在下面观察到这一点:
Python2
>>> val = "אבג".decode('utf-8')
>>> val # displays repr value
u'\u05d0\u05d1\u05d2'
>>> print val # displays str value
אבג
而且,如上所述
>>> print [val]
[u'\u05d0\u05d1\u05d2']
与python3相比, str
对象没有decode
功能-它们已被解码。
>>> val = "אבג"
>>> val
'אבג'
>>> print(val)
אבג
>>> print([val])
['אבג']
您可以看到这就是为什么它现在可以工作的原因。
对于您的问题,如果要在打印字典时按原样查看字符,可以执行以下操作:
print dict['LOCID']
旁注,请勿使用dict
来命名变量,因为它掩盖了您正在使用的非常重要的内置类。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.