Pergunta

Tenho trabalhado com o Tweepy e quando executo o filtro do tweepy passando caracteres não-ascii ocorre um erro.Por exemplo, usando o seguinte comando, recebi o erro abaixo:

Meu código:

auth = tweepy.OAuthHandler(apikey[0], apikey[1])
auth.set_access_token(apikey[2], apikey[3])
api = tweepy.API(auth)
sapi = tweepy.streaming.Stream(auth, CustomStreamListener())
sapi.filter(track=['eleições'])

Meu erro:

Traceback (most recent call last):
  File "./TwitterStreamingAPI.py", line 81, in <module>
    sapi.filter(track=['eleições']) 
  File "/usr/local/lib/python2.7/dist-packages/tweepy/streaming.py", line 303, in filter
    encoded_track = [s.encode(encoding) for s in track]
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe7 in position 4: ordinal not in range(128)

Eu ficaria feliz se alguém me ajudasse em como resolvê-lo.

Desde já, obrigado,

Thiago.

Foi útil?

Solução

Tente substituir a linha do filtro por:

sapi.filter(track=[u'eleições'])

Um faz .encode() para converter de unicode para str.Um faz .decode() para converter de str para unicode.Já que tweepy está tentando .encode(), deveríamos alimentá-lo com um unicode.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top