Решение вывода 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)