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

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

2 ответа

Решение

Вместо:

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

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

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

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

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

print '\n'.join(x.encode('ascii', 'ignore') for x in your_list)

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

Другие вопросы по тегам