В моем скрипте я получаю сообщение об ошибке из БД и хочу показать его на веб-странице. Он работает идеально, пока я не получаю локальные письма в сообщении об ошибке. Сообщение является кортежем.Ошибка кодирования str() для списка или кортежа в python2
>>> # 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 ') " –
так что не так с вашим решением? – MooingRawr