Решение вывода Unicode в Python - PullRequest
       44

Решение вывода Unicode в Python

2 голосов
/ 22 октября 2010

Я написал некоторый код, который отправляет запросы в Google и возвращает результаты запроса.Очевидно, что содержимое, которое извлекается, имеет формат Unicode, поэтому, когда я помещаю их в список, например, и распечатываю этот список (весь список вместе, а не член за членом), надоедливое дополнительное «u» всегда стоит за всеми членами вэтот список .. Как я могу избавиться от них?Я пытался преобразовать весь текст в ascii, но, поскольку в тексте есть некоторые символы, отличные от ascii (на разных языках), это дает сбой, теперь вы знаете, что мне следует сделать, чтобы получить лучший результат?и я надеюсь, что это дополнительное «ты» не доставит никаких хлопот.спасибо

Ответы [ 2 ]

5 голосов
/ 22 октября 2010

Вместо:

>>> print your_list
[u'foo', u'bar']

Использование:

>>> print '\n'.join(your_list)
foo
bar

Вы можете использовать ', ' вместо '\n' в качестве разделителя, если вы предпочитаете хранить все в одной строке.

У вас также могут возникнуть проблемы, если вы пытаетесь отобразить символы Юникода в консоли Windows.Если это так, вы можете использовать, например, IDLE , который может отображать символы Юникода.В качестве альтернативы вы можете конвертировать в ASCII и игнорировать символы, которые не существуют в ASCII:

print '\n'.join(x.encode('ascii', 'ignore') for x in your_list)
1 голос
/ 22 октября 2010

Если вы собираетесь делать что-то значимое с вашим выводом, вам нужно решить, какую кодировку вывода вы хотите. Выбрасывание всех этих не-ascii персонажей - даже не второе лучшее решение. Выберите подходящую выходную кодировку (например, для вывода оболочки ваша кодировка оболочки, для веб-вывода ваша веб-кодировка, наилучшим универсальным решением является UTF-8) и подходящее кодирование: ', '.join(x.encode('utf-a') for x in your_list) ( En- / Decoding )

...