从Python2.7将Tweepy TwitterStreamer输出到.csv

2024-04-25 06:31:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个用Python编写的文件,该文件将输出到Twitterstream,并根据列表中的关键字获取消息。这个列表很长,输出结果不是我想要的全部。我想清理文件,并将结果输出到文本文件。在

以下是我当前的代码,它将所有消息写入一行:

import sys
....

if __name__ == '__main__':
     with open("keywords.txt", "r") as f:
         keywords = f.readlines()


    l = StdOutListener()    
    auth = OAuthHandler(consumer_key, consumer_secret)    
    auth.set_access_token(access_token, access_token_secret)    

    stream = Stream(auth, l)        
    stream.filter(track=keywords]) 

上面的代码没有拉入任何内容,这意味着当我在命令提示符python hashtagworking.py > output.txt输入以下内容时,没有任何内容输出到文本文件 在stream.filter中大约有300个项目,所以我想用一个txt文件来代替实际的文本。同样,结果显示在一行的每一个消息,这是如何写的,我想重写它输出到一个csv文件中的每个对象的消息。在

我想这就是我要找的,但我想确定一下:similar problem

我还想从其他嵌套对象中获取东西,比如entities:{…}具体地说,我想从entities对象获取hashtag,但更具体地说,是任何对象。我尝试过data.text.hashtagdata.entities.hashtagdata.entities.media.hashtag这些都没有用。在


Tags: 文件对象代码txttokenauth消息列表
1条回答
网友
1楼 · 发布于 2024-04-25 06:31:02

对于你的关键字问题,假设你把它们都放在一个txt文件中(每行一个标记)

with open("tokens.txt", "r") as f:
    tokens = f.readlines()

....
stream.filter(track=tokens)

对于你的其他问题(以.csv格式输出)你能写下一个你希望在文件中显示什么的例子吗?在

^{pr2}$

请注意,这不是一个可接受的长期解决方案,因为每次从流中过滤tweet时都要打开和关闭文件(也称为泛洪I/O),您可以实现一个缓冲区(每次缓冲区被填满时,将其转储到文件中)。在

请注意,我正在手动写入csv文件,如果您想在csv操作中获得更多深度,请查看http://docs.python.org/2/library/csv.html

相关问题 更多 >