如何通过包含Twitter流数据的列表进行迭代



i是使用Tweepy Streaming API从Twitter流式数据,

class MyStreamListener(tweepy.StreamListener):
def __init__(self):
    super().__init__()
    self.counter = 0
    self.limit = 8
    self.q=list()
def on_status(self, status):
    self.counter += 1
    if self.counter < self.limit:
        self.q.append(status.user.name)
        self.q.append(status.user.statuses_count)
        #print(status.text)
    else:
        myStream.disconnect()
        print(self.q)

on_status方法中,我在列表中存储了所有数据和status_count,但是当我尝试迭代数据时,我无法做到

enter code here
tweet_list=list()
tweet_list.append(myStream.filter(track=[p]))
#tweet_list=myStream.filter(track=[p])
print(len(myStream.filter(track=[p])))

我得到了这个结果:

['Chanchinthar', 1063, 'Sourabh', 4424]
Traceback (most recent call last):
File "C:/Users/TharunReddy/Desktop/pothi/twitter.py", line 51, in <module>
print(len(myStream.filter(track=[p])))
TypeError: object of type 'NoneType' has no len()

如何将这些推文存储在列表中并能够迭代它?有人请帮助!

您的myStream对象不是列表,而是生成器(又是迭代器类型(。迭代器基本上是迭代的(如列表(,其元素一次是计算的(懒惰(:只有一旦需要就可以。这是一个更高的内存效率结构,但无法计算长度。(另外,您还可以一次迭代它们(。

tldr :将您的myStream转换为列表:list(myStream),一切都很好。

有关发电机/迭代器的更多信息,请参见

相关内容

  • 没有找到相关文章

最新更新