2010-10-22 3 views
2

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

+0

Почему «у» а проблема? Это просто косметика? Или вам нужно использовать этот вывод для чего-то еще? –

+0

по каким-то причинам – Hossein

+0

что должно происходить с символами, отличными от ASCII? –

ответ

5

Вместо:

>>> 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) 
1

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