首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Python:使用tweepy流侦听器在数组中批处理tweet

Python:使用tweepy流侦听器在数组中批处理tweet
EN

Stack Overflow用户
提问于 2015-08-27 17:55:15
回答 1查看 807关注 0票数 0

我需要使用tweepy流侦听器迭代tweet,可能每5-10个tweet对其进行批处理,将其存储在一个数组中,并使用tweet数组执行一些逻辑。查找有关如何在streamlistener类下使用on_data对象对它们进行批处理的帮助。

代码语言:javascript
运行
复制
class stdoutlistener(StreamListener):
    def on_data(self, data):
         data = json.loads(data)
         print data

if i do something like this:
    i = 0
    records=[]
    while i<5:
         for item in data:
             records.append(item)
             i = i+1
    <do some logic>         
    records=[]         

它遍历tweet对象中的每个项(如贡献者、文本、id、源等),但不迭代tweet本身。

如何用on_data类将tweet批处理为5s或10s,并将它们存储在Python数组中?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-08-27 19:47:10

最好的方法是api.search方法,方法是获取10个结果,并在搜索方法中使用流的track参数作为搜索查询q。在linux上,您可以使用cron定期自动运行脚本。或者您可以在脚本中启动一个Thread来实现Thread。循环。

它对每个项进行迭代,因为对接收到的每个数据流调用on_data方法,而不是在数据收集时(这应该是一个列表)。

这是解决办法。

代码语言:javascript
运行
复制
container = []
class stdoutlistener(StreamListener):
    def on_data(self, data):
        global container
        container.append(data)
        if len(container) > 10:
            for each in container:
                # Perform operation on each
            container = []

我已经创建了一个变量容器,并将data从流追加到它,如果有10个以上的元素,您应该执行您的操作,然后清空container

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32256315

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档