栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何通过tweepy在json中保存流式推文?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何通过tweepy在json中保存流式推文?

在重读您的原始问题时,我意识到您提出了 许多 较小的问题。我将在这里尝试回答其中的大多数问题,但实际上可能有人会问一个关于SO的单独问题。

  • 为什么添加会破坏它
    on_data

没有看到实际的错误,很难说。在我重新生成用户/访问密钥之前,它实际上对我不起作用,我会尝试一下。

有几件事我可能会做的与您的回答有所不同。

tweets
是全局列表。这意味着,如果您有多个
StreamListeners
(即在多个线程中),则 任何 流侦听器收集的 每个
推文都将添加到此列表中。这是因为Python中的列表是指内存中的位置-如果这令人困惑,那么这是我的意思的基本示例: __

>>> bar = []>>> foo = bar>>> foo.append(7)>>> print bar[7]

请注意,即使您认为将7附加到

foo
foo
并且
bar
实际上指的是同一件事(因此更改一项都会改变两者)。

如果您打算这样做,这是一个很好的解决方案。但是,如果您打算将推文与其他听众分开,则可能会非常头痛。我个人会像这样构造我的课程:

class CustomStreamListener(tweepy.StreamListener):    def __init__(self, api):        self.api = api        super(tweepy.StreamListener, self).__init__()        self.list_of_tweets = []

这会将推文列表更改为仅在您的课程范围内。另外,我认为这是适当的属性名称从改变

self.save_file
self.list_of_tweets
,因为你还命名
文件
,你追加鸣叫
save_file
。尽管这不会严格导致错误,但是让我感到困惑的
self.save_file
是列表和
save_file
文件。它可以帮助将来的您和其他读取您的代码的人弄清楚到底做什么/是什么。
有关变量命名的更多信息。

在我的评论中,我提到您不应将其

file
用作变量名。
file
是Python的内置函数,可构造一个新的type对象
file
。从技术上讲,您可以覆盖它,但这是一个非常糟糕的主意。有关更多内置函数,请参见Python文档。

  • 如何过滤多个关键字的结果?

OR
在这种类型的搜索中,所有关键字都在一起,来源:

sapi.filter(track=['twitter', 'python', 'tweepy'])

这意味着它将获得包含“ twitter”,“ python”或“
tweepy”的推文。如果您希望

AND
所有术语都用()合并,则必须通过对要搜索的所有术语列表中的一条推文进行后处理。

  • 如何根据位置AND关键字过滤结果?

我实际上只是意识到,您确实像我要建议的那样问这个问题。正则表达式后处理解决方案是实现此目的的好方法。您还可以尝试按位置
关键字进行过滤,如下所示:

sapi.filter(locations=[103.60998,1.25752,104.03295,1.44973], track=['twitter'])
  • 存储/处理推文的最佳方法是什么?

这取决于您要收集多少。我非常喜欢数据库,尤其是如果您打算对很多推文进行情感分析。当您收集数据时,您应该
收集您需要的东西。这意味着,当您将结果保存到数据库中/在

on_data
方法中的任何位置时,都应从JSON中提取重要部分,而不保存其他任何内容。例如,如果您要查看品牌,国家和时间,则只需考虑以下三点:不要保存该tweet的整个JSON转储,因为它只会占用不必要的空间。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/596601.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号