Ainda não tem acesso? Estude com a gente! Matricule-se
Ainda não tem acesso? Estude com a gente! Matricule-se

Solucionado (ver solução)

Output de dados para JSON

Como eu faria para o output dos dados no modelo de stream, saírem em JSON, caso eu queira indexá-los no elastic?

"stream = (tw.Stream(auth = auth, listener=StreamListener())) stream.filter(track=track)"

Tentei algumas formas, até com a biblioteca "json", porém não fui muito bem.

1 resposta
solução

Olá Wallace,

uma maneira mencionada por alguns usuários, e que me parece ser a melhor opção, seria utilizando o Tweepy Parser, mas há relatos de não funcionar para algumas versões do Python.

myStream = tw.Stream(auth = auth, listener=MyStreamListener(), parser=tw.parsers.JSONParser())

Uma segunda opção, não recomendada, é fazer como em alguns exemplos do curso, pelo atributo privado "_json". Não é recomendado utilizar atributos privados dessa forma, no entanto, essa solução pode te ajudar no desenvolvimento.

class MyStreamListener(tw.StreamListener):

    def on_status(self, status):
        status_json = status._json