我试图操作存储在表中的数据。表列的瑞典语名称为Ä、Ä或Ö。在
Python Shell可以打印字符,但当我将它们存储在一个列表中时,它们将不起作用:
>>> print 'åäö'
åäö
>>> testlist = ['åäö', 'öööö']
>>> testlist
['\xe5\xe4\xf6', '\xf6\xf6\xf6\xf6']
>>> import sys
>>> sys.getdefaultencoding()
'ascii'
>>>
要让python使用Ä和ç,我需要做些什么?在
编辑:
这将按照@schwobaseggl的建议工作:
^{pr2}$我很困惑。我真正要做的是为UpdateCursor提供一个字段列表。我猜字段列表看起来不像光标的“åää”,而是“\xe5\xe4\xf6”,当光标试图将列表中的字段与表中的实际字段匹配时,光标会失败:
with arcpy.da.UpdateCursor(fc, fieldlist) as ucursor:
for row in ucursor:
...
['\xe5\xe4\xf6','\xf6\xf6\xf6\xf6']hmmm,这是个坏消息,这意味着列表内容不是文本。只有字节序列。在
为了正确使用所有语言,可以使用字符串前缀“u”。 例如(在俄语中,我的键盘上没有任何瑞典字符)
str=u'Приет!'在
打印列表时,请注意
list
的__str__
(由print
隐式调用)使用其元素__repr__
来显示它们。似乎没什么不对劲。检查:在处理非ascii字符时,最好使用unicode字符串。他们表现得更好:
^{pr2}$相关问题 更多 >
编程相关推荐