Страницы

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

понедельник, 23 декабря 2019 г.

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

#python #python_2x #python_27


На входе имеется массив «строк» (юникод–объектов):

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 – . Если сравнить «человеческое
представление» и юникод–строку "привет", то сравнение работает верно. На данной стадии
решения вопроса хотелось бы все–таки как–то получить не юникод–строку, а человеческое
представление.
    


Ответы

Ответ 1



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

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

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