Страницы

Поиск по вопросам

понедельник, 19 ноября 2018 г.

Преобразование юникод–строки в исходное понятное человеку представление

На входе имеется массив «строк» (юникод–объектов):
words = [u"привет", u"мир"]
Моя задача — хитрым образом обработать их как одну строку:
text = process_text(u' '.join(words))
Далее разбить обратно на слова и поместить в список:
words = [word for word in text.split()]
Проблема в том, что на последнем этапе после выполнения метода split, строки из u"привет" и u"мир" превращаются в u'\u043f\u0440\u0438\u0432\u0435\u0442' и u'\u043c\u0438\u0440', но мне необходимо иметь исходное представление. Каким образом этого добиться?
Обновление
Для выявления проблемного места ставил вывод строки в консоль. Перед process_text, строка выводится в нужном формате, после — тоже, проблема появляется только после метода split.
Обновление 2
На всех этапах тип переменной text – . Если сравнить «человеческое представление» и юникод–строку "привет", то сравнение работает верно. На данной стадии решения вопроса хотелось бы все–таки как–то получить не юникод–строку, а человеческое представление.


Ответ

Проблемы с выводом, как оказалось, заключается в том, что в Python 2 необходимо выводить именно строку, а не массив (в Python 3 вывод массива через print работает превосходно).
То есть надо не
print(words)
Надо
print(u' '.join(words))
Тогда выводимая строка содержит "привет мир"

Комментариев нет:

Отправить комментарий