【发布时间】:2016-12-29 15:44:30
【问题描述】:
在我的脚本中,我从 DB 收到错误消息并希望在网页中显示它。当我没有在错误消息中收到本地字母时,它工作得很好。 消息是元组。
>>> # coding: utf-8
...
# string with u
>>> data1 = (1, u'Это мой текст')
>>> print data1[1]
Это мой текст
>>> print str(data1)
(1, u'\u042d\u0442\u043e \u043c\u043e\u0439 \u0442\u0435\u043a\u0441\u0442')
# string without u
>>> data2 = (1, 'Это мой текст')
>>> print data2[1]
Это мой текст
>>> print str(data2)
(1, '\xd0\xad\xd1\x82\xd0\xbe \xd0\xbc\xd0\xbe\xd0\xb9 \xd1\x82\xd0\xb5\xd0\xba\xd1\x81\xd1\x82')
# I want like this
>>> str(data2).??? # WHAT I HAVE TO DO???
(1, 'Это мой текст')
# Current solution for me, but I want to know about better and more beautiful solution
>>> print ', '.join(map(lambda x: x.decode('utf-8') if isinstance(x, str) else str(x), data2))
1, Это мой текст
您能帮我找到 (???) 方法并解释为什么会发生这种情况。 谢谢!!!
【问题讨论】:
-
请编辑您的帖子以添加您收到的错误。
-
我没有收到错误,但网页上的输出如下:"(1, '\xd0\xad\xd1\x82\xd0\xbe \xd0\xbc\xd0\xbe\ xd0\xb9 \xd1\x82\xd0\xb5\xd0\xba\xd1\x81\xd1\x82')"
-
那么您的解决方案有什么问题?
-
我想知道更好更漂亮的解决方案。像这样:str(data2).???, where ???一种或两种标准方法。我在玩 decode() 和 encode(),但我没有得到我期望的结果。
标签: python string list encoding tuples