我正在使用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}}
第一个结果显示为预期,因为我们使用' print'。但是,在我创建的词典中,希伯来语显示为unicode。
无论如何在我的字典中显示实际的希伯来语?或者这是预期的吗?
由于
答案 0 :(得分:0)
在python2中,当你打印出一个列表时,你最终会打印该列表内容的
ProgressBar.max := ProgressBar.max +1;
ProgressBar.StepBy(2);
ProgressBar.StepBy(-1);
ProgressBar.max := ProgressBar.max -1;
。
在python3中,字符串' s repr
与其repr
返回值相同。您可以在下面观察:
Python2
str
如上所述,
>>> val = "אבג".decode('utf-8')
>>> val # displays repr value
u'\u05d0\u05d1\u05d2'
>>> print val # displays str value
אבג
使用python3进行约束,>>> print [val]
[u'\u05d0\u05d1\u05d2']
个对象没有str
函数 - 它们已被解码。
decode
你可以看到这就是它现在有效的原因。
对于您的问题,如果您想在打印字典时查看字符,可以执行以下操作:
>>> val = "אבג"
>>> val
'אבג'
>>> print(val)
אבג
>>> print([val])
['אבג']
旁注,请勿使用print dict['LOCID']
来命名变量,因为它会影响您正在使用的非常重要的内置类。