在使我的Tweepy流停止时遇到问题

时间:2018-11-15 12:23:49

标签: python socket.io tweepy

当我达到100条推文时,无法退出我的信息流。我尝试了很多方法。希望保持“打开时”的用法。

*在文件打开时使用while循环会导致杂乱的不良JSON文件 *断开连接的当前使用率在达到100后仍保持流式传输,但数据已损坏

已编辑:

  1. 使用self重新创建了tweets的数量和总tweets。
  2. 在每次加载数据时,都会更新num_tweets:self.num_tweets + = 1。然后更新pbar:self.pbar.update(1)
  3. 在try语句之外,如果self.num_tweets

信用: Chris Cookman

def __init__(self, api=None):
        self.num_tweets = 0
        self.total_tweets = int(input("Number of tweets:"))
        self.pbar = tqdm(total=self.total_tweets)
        self.unsaved = 0
        self.emojis = 0

    def on_data(self, data):
        try:
            portal_1 = creds()
            rawTweets = json.loads(data)
            self.num_tweets += 1
            self.pbar.update(1)
            ...
            ...
        except BaseException as e:
            print(colored("Error on_data: %s", "red") % str(e))
        if self.num_tweets < self.total_tweets:
            return True
        else:
            self.pbar.close()
            return False

1 个答案:

答案 0 :(得分:0)

要使用扭曲的声音退出流,您需要从on_status函数返回false,因此,如果您进行以下更改:

.table-view .table-row-cell {
    -fx-background-color: #CAC9CC;
}

收件人:

if self.num_tweets < 100:
    return True
    else:
        twitter_stream.disconnect()

那应该解决它。顺便说一句,对于您的进度条,每次运行时都添加self.num_tweets:

if self.num_tweets < 100:
    return True
else:
    self.pbar.close() # Closes the instance of the progress bar.
    return False # Closes the stream.

通过更新,您每次都会添加鸣叫数量:

  

推文1 | Tweet Count =的1 |进度栏=的1(1)

     

推文2 | Tweet Count =的2 |进度栏=的1 + 2(3)

     

推文3 | Tweet Count =的3 |进度栏=的3 + 3(6)

从您的代码中,我假设您的意图是增加它们,因此,只需要将其更改为:

self.pbar.update(self.num_tweets)

希望这会有所帮助。