Уведомления

Группа в Telegram: @pythonsu

#1 Янв. 20, 2013 21:34:10

nesergen
Зарегистрирован: 2013-01-20
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

unicode -> консоль

Имею убунту 12.04 и питон 2.7.
с выводом простого юникод-текста (русского) в консоль проблем не имею, но вывод списка значений сопровождается нечитабельным текстом.

>>> a=(u'\u0412\u044b\u043c\u043f\u0435\u043b-\u041a\u043e\u043c\u043c\u0443\u043d\u0438\u043a\u0430\u0446\u0438\u0438', u'\u041c\u043e\u0431\u0438\u043b\u044c\u043d\u044b\u0435 \u0422\u0435\u043b\u0435\u0421\u0438\u0441\u0442\u0435\u043c\u044b')
>>> print a
(u'\u0412\u044b\u043c\u043f\u0435\u043b-\u041a\u043e\u043c\u043c\u0443\u043d\u0438\u043a\u0430\u0446\u0438\u0438', u'\u041c\u043e\u0431\u0438\u043b\u044c\u043d\u044b\u0435 \u0422\u0435\u043b\u0435\u0421\u0438\u0441\u0442\u0435\u043c\u044b')
>>> print a[0]
Вымпел-Коммуникации

как видно, при выводе всего списка на печать идут кракозябры, но при выводе конкретного значения - всё нормально. В питоне 3.0 такой проблемы ,само собой, не имеется.
Вот и вопрос, можноли вывести список на печать с расшифрованным текстом ?
Это нужно для удобства отладки программы. Генерируется некоторое хранилище данных в виде словаря с вложенными списками; в связи с этим применеие итераторов для выбора значений и создания читабельной строки не приветствуется. Хочется выводить хранилище на печать в исходной структуре.

Должно быть так:
a=(u'\u0412\u044b\u043c\u043f\u0435\u043b-\u041a\u043e\u043c\u043c\u0443\u043d\u0438\u043a\u0430\u0446\u0438\u0438', u'\u041c\u043e\u0431\u0438\u043b\u044c\u043d\u044b\u0435 \u0422\u0435\u043b\u0435\u0421\u0438\u0441\u0442\u0435\u043c\u044b')
>>> print a
('Вымпел-Коммуникации', 'Мобильные ТелеСистемы')

Отредактировано nesergen (Янв. 20, 2013 22:05:37)

Офлайн

#2 Янв. 20, 2013 21:39:24

mironich
От:
Зарегистрирован: 2011-05-23
Сообщения: 118
Репутация: +  2  -
Профиль   Отправить e-mail  

unicode -> консоль

print u"\n".join(a)
Например так..



Офлайн

#3 Янв. 20, 2013 21:45:44

nesergen
Зарегистрирован: 2013-01-20
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

unicode -> консоль

так-то оно так, только ведь в список может быть вложен еще список , а в тот список еще один, и список может быть не списком , а словарем , что усложняет задачу

Отредактировано nesergen (Янв. 20, 2013 21:46:03)

Офлайн

#4 Янв. 21, 2013 08:15:18

sergeek
Зарегистрирован: 2012-06-26
Сообщения: 470
Репутация: +  43  -
Профиль   Отправить e-mail  

unicode -> консоль

print repr(a).decode('raw_unicode_escape')

Офлайн

#5 Янв. 21, 2013 11:11:52

nesergen
Зарегистрирован: 2013-01-20
Сообщения: 10
Репутация: +  0  -
Профиль   Отправить e-mail  

unicode -> консоль

спасибо, работает.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version