TypeError: 'ItemIterator' object is not reversible

TypeError: 'ItemIterator' object is not reversible

我尝试以相反的顺序迭代,但出现错误“TypeError:'ItemIterator' object is not reversible”

这是我的代码:

# Collect tweets
tweets = tw.Cursor(api.search,
              q=search_words, 
              lang="id",
              since=date_since).items(10)

# Iterate and print tweets
for tweet in reversed(tweets):
 print( tweet.user.screen_name, tweet.created_at, tweet.text)

知道如何反转对象吗?

tweets 是一个生成器。所以要使用 reversed 你需要将生成器转换为列表。

所以reversed(list(tweets))可以帮助你撤销推文

# Collect tweets
tweets = tw.Cursor(api.search,
          q=search_words, 
          lang="id",
          since=date_since).items(10)

# Iterate and print tweets
for tweet in reversed(list(tweets)):
    print( tweet.user.screen_name, tweet.created_at, tweet.text)

return tw.Cursor无法反转的对象,也许你可以创建一个包含你需要尝试反转的信息的列表。

如上图所示,tweets 并未包含当前收到的所有推文。 因为预先加载所有数据是一项占用大量内存的操作。

tweepy 库的代码库所示,您是 运行 for 循环中的 Iterator 对象。因此 for 循环调用的 Iterator 对象中的默认方法 == tweetsnext().

备选方案:您可以使用 while 循环并在每次迭代时调用 prev() 方法。