преобразование твитов в строку в Python

Я использую tweepy для сбора случайных твитов и хочу отфильтровать не буквенно-цифровые твиты.

Но чтобы выполнить проверку, мне сначала нужно преобразовать твиты в строку. Например,

from tweepy import StreamListener
....

class sListener(StreamListener):
       def on_status(self,status):
            ....
            text = str(status.text)
            if not isAlphanumeric(text):
                ......

Однако использование str() для преобразования твита в саму строку приводит к ошибке, если твит не в кодировке ascii со следующим сообщением:

UnicodeEncodeError: 'ascii' codec can't encode character

Итак, я застрял в цикле, где мне нужно преобразовать в строку, чтобы отфильтровать не-ascii, но я не могу преобразовать в строку из-за не-ascii....

Я даже не знаю, что такое твиты типа данных...

Кто-нибудь может мне помочь?


person CosmicRabbitMediaInc    schedule 17.01.2013    source источник
comment
Вы пробовали это? (stackoverflow.com/a/1207479/1984421)   -  person Alberto Miranda    schedule 17.01.2013
comment
Если вам не нужны твиты без ASCII, почему бы просто не пропустить те, которые не конвертируются с помощью str()?   -  person woemler    schedule 17.01.2013


Ответы (3)


Кажется, ваша кодировка твитов не ascii

Пытаться

text = unicode(status.text)

вместо

text = str(status.text)
person Abhijit    schedule 17.01.2013

пытаться

text = status.text.encode('utf8')
person Fabrizio Monaco    schedule 18.10.2016

У меня была аналогичная проблема в прошлом. Посмотрите, работает ли это:

tweetText = status.text.encode("utf-8")
tweetText = unicode(tweetText, errors='ignore')
person user2789945    schedule 18.10.2016