如何解决类型错误:“ItemIterator”对象不可逆
我尝试以相反的顺序进行迭代,但出现错误“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)
知道如何反转对象吗?
解决方法
async def is_running(proc):
with contextlib.suppress(asyncio.TimeoutError):
await asyncio.wait_for(proc.wait(),1e-6)
return proc.returncode is None
是一个生成器。因此要使用 tweets
,您需要将生成器转换为列表。
所以 reversed
可以帮助您反转推文
reversed(list(tweets))
,
返回 tw.Cursor 的对象无法反转,也许您可以创建一个包含您需要尝试反转的信息的列表。
,正如它显示的那样,tweets
没有携带目前收到的所有推文。
因为预先加载所有数据是一项内存消耗很大的操作。
如 tweepy
库的代码库所示,您正在 for 循环中运行 Iterator 对象。因此,for 循环调用的 Iterator 对象 == tweets
中的默认方法是 next()
。
替代方案:您可以使用 while
循环并在每次迭代时调用 prev()
方法。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。