2016-10-25 13 views
2

Tweepyを使用してストリーミングAPIにアクセスし、JSONファイルに格納しています。 コードは正常に見えるが、私はこのエラーを得続ける: はAttributeError:「ここNoneType」オブジェクトが属性「ストリップ」を持っていないつぶやきtweepyを使用したライブストリーミング

import sys 
import tweepy 
import json 

consumer_key = 'XXXX' 
consumer_secret = 'XXXX' 
access_key = 'XXXX' 
access_secret = 'XXXX' 

auth = tweepy.OAuthHandler(consumer_key, consumer_secret) 
auth.set_access_token(access_key, access_secret) 
api = tweepy.API(auth) 
file = open('today.txt', 'a') 

class CustomStreamListener(tweepy.StreamListener): 
    def on_status(self, status): 
     print (status.text) 

    def on_data(self, data): 
     json_data = json.loads(data) 
     file.write(str(json_data)) 

    def on_error(self, status_code): 
     print >> sys.stderr, 'Encountered error with status code:', status_code 
     return True # Don't kill the stream 

    def on_timeout(self): 
     print >> sys.stderr, 'Timeout...' 
     return True # Don't kill the stream 

sapi = tweepy.streaming.Stream(auth, CustomStreamListener()) 
sapi.filter(track=['twitter']) 

エラーが最後の行です。 私はストリームがnullを返すと思いますので、フィルタリングしようとしているときにエラーが発生しています。 助けてください!

答えて

1

私はlibの問題だと思っています。今日は自分のコードで同じことがあります。 図書館はもはや維持されていないことがわかりました。 おそらくライブラリを変更する必要があります。

2

Tweepyは10月18日現在、もはや維持されていませんが、これは問題の原因ではありません。

TwitterのストリーミングAPIは、10月21日のDYN攻撃以降、問題が発生しています。これらはtwitter開発者フォーラムで報告されており、twitterスタッフは問題を認識しています:https://twittercommunity.com/t/issues-reported-with-streams-since-10-21/76429

問題の原因が何であるかについて明確な答えはありませんが、観察された振る舞いは、Twitterのストリーミングエンドポイントのいずれかへの接続が短時間(通常は必ずしもそうではありません)データを受信することなく。応答が送信されている間に接続が閉じられ、無効なJSONが返されることがあります。