2016-11-20 10 views
0

オンラインコースからいくつかのコードを複製したいのですが、コードの最後の行の後に次のエラーメッセージが表示されます:AttributeError: 'dict'オブジェクトには、Twitterストリーミングコードの属性 'list'がありません

はAttributeError:「辞書」オブジェクトが

を何属性「リスト」を持っていない私は、著者のGitHubの中に同様のファイルが見つかりました:https://github.com/hugobowne/playing_with_twitter/blob/master/listening_to_tweets.pyをしかし、私が3.5を実行しているときV2.7であると思われるとは若干異なっていますコースコード。誰かが私のコードで何がうまくいかないかもコメントできますか?

ご協力いただきありがとうございます。

# import packages 
import tweepy 
import json 
import pandas as pd 

# Store OAuth authentication credentials in relevant variables 
# ...access_token etc all provided in my code 

# Pass OAuth details to tweepy's OAuth handler 
auth = tweepy.OAuthHandler(consumer_key, consumer_secret) 
auth.set_access_token(access_token, access_token_secret) 

class MyStreamListener(tweepy.StreamListener): 
    def __init__(self, api=None): 
     super(MyStreamListener, self).__init__() 
     self.num_tweets = 0 
     self.file = open("tweets.txt", "w") 

    def on_status(self, status): 
     tweet = status._json 
     self.file.write(json.dumps(tweet) + '\n') 
     tweet.list.append(status) 
     self.num_tweets += 1 
     if self.num_tweets < 100: 
      return True 
     else: 
      return False 
     self.file.close() 

    def on_error(self, status): 
      print(status) 

      # Create Streaming object and authenticate 
l = MyStreamListener() 
stream = tweepy.Stream(auth, l) 

# This line filters Twitter Streams to capture data by keywords: 
stream.filter(track=['clinton','trump','sanders','cruz']) 

答えて

0

変更4物事:

  1. 追加self.tweets = []if len(self.tweets) < 100
から tweet.list.append(status)変更 if self.num_tweets < 100: self.num_tweets += 1
  • self.tweets.append(status)に削除変更
  • __init__
  • +0

    こんにちはエリック、返信する時間をとってくれてありがとう。非常に感謝し、フォローアップの遅れに対する私の謝罪。ステップ1をコードに組み込む方法を明確にしてもよろしいですか?私は前に___ init ___に出くわしましたが、それだけではまだ分かりません(to-doリストに追加しています)ので、追加する方法はすぐわかりません。もう一度ありがとう! – Daniel

    関連する問題