Tweety仅对不是整个单词的字母执行搜索

时间:2016-05-02 19:14:54

标签: python tweepy

如果有人对Tweepy有很多经验,我们将不胜感激。我正在编写一个GUI应用程序,通过Tkinter Entry窗口小部件来获取用户输入,以过滤返回的推文。

我有一个侦听器类,它是在Tweepy文档中指定的,并添加了这个,它只是将推文文本添加到定义的tweet_box,这是一个Text小部件来显示推文

def on_data(self, data):
    tweet = json.loads(data)          
    tw = tweet['text']
    tweet_box.insert(tk.END, tw)
    tweet_box.insert(tk.END, "\n")
    tweet_box.see(tk.END)
    time.sleep(2)
    return True  

然后我使用此过滤推文;

 auth = OAuthHandler(consumer_key, consumer_secret)
 auth.set_access_token(access_token, access_secret)
 self.listener = TwListener()
 streamer = Stream(auth, self.listener)
 streamer.filter(track=self.search_field.get())

search_field.get()方法来自Entry窗口小部件,用户输入要过滤的字词。

所以我的理解是search_field中的任何内容,在调用.get()方法时,您应该能够返回该值以供使用。在测试中,只需打印出所述值 - 它就可以了。然而,当它进入过滤器的tweepy包装器时,它似乎不会占用整个值,而是看起来是在逐个字母的基础上执行搜索。同样,如果用户输入了Python'它会搜索P或Y或T等。

我真的无法理解为什么会这样,有没有人有类似的经历?

1 个答案:

答案 0 :(得分:2)

Streaming With Tweepy州:

  

“track参数是要流式传输的搜索词数组。”

您的代码应该将单个字符串包装在如下列表中:

streamer.filter(track=[self.search_field.get()])