TwythonStreamer:OR 不能用作过滤器
TwythonStreamer: OR does not work as a filter
我不确定为什么以下代码没有 return 任何结果。如果我输入 streamer.statuses.filter(track = 'data')
,它就会输出推文。但是,如果我将 join
与 OR
一起使用,它就不起作用,尽管我使用 'data'
作为选项之一。最后,如果我使用 track=keywords
,它也不起作用。
from twython import TwythonStreamer
from collections import Counter
tweets = []
class TweetStreamer(TwythonStreamer):
def on_success(self, data):
if 'text' in data:
tweets.append(data['text'].encode('utf-8'))
print data['text'].encode('utf-8')
if len(tweets)>10:
self.disconnect()
def on_error(self, status_code, data):
print status_code
self.disconnect()
CONSUMER_KEY = "..."
CONSUMER_SECRET = "..."
ACCESS_TOKEN = "..."
ACCESS_TOKEN_SECRET = "..."
streamer = TweetStreamer(CONSUMER_KEY, CONSUMER_SECRET,
ACCESS_TOKEN, ACCESS_TOKEN_SECRET)
keywords = ['data','information']
track = " OR ".join(keywords)
streamer.statuses.filter(track = track)
您必须以正确的方式使用 Twitter API。
来自doc:
- 对于与 space 的逻辑与分隔:
"data information"
== " ".join(['data', 'information'])
- 对于用逗号分隔的逻辑或:
"data,information"
== ",".join(['data', 'information'])
我不确定为什么以下代码没有 return 任何结果。如果我输入 streamer.statuses.filter(track = 'data')
,它就会输出推文。但是,如果我将 join
与 OR
一起使用,它就不起作用,尽管我使用 'data'
作为选项之一。最后,如果我使用 track=keywords
,它也不起作用。
from twython import TwythonStreamer
from collections import Counter
tweets = []
class TweetStreamer(TwythonStreamer):
def on_success(self, data):
if 'text' in data:
tweets.append(data['text'].encode('utf-8'))
print data['text'].encode('utf-8')
if len(tweets)>10:
self.disconnect()
def on_error(self, status_code, data):
print status_code
self.disconnect()
CONSUMER_KEY = "..."
CONSUMER_SECRET = "..."
ACCESS_TOKEN = "..."
ACCESS_TOKEN_SECRET = "..."
streamer = TweetStreamer(CONSUMER_KEY, CONSUMER_SECRET,
ACCESS_TOKEN, ACCESS_TOKEN_SECRET)
keywords = ['data','information']
track = " OR ".join(keywords)
streamer.statuses.filter(track = track)
您必须以正确的方式使用 Twitter API。
来自doc:
- 对于与 space 的逻辑与分隔:
"data information"
==" ".join(['data', 'information'])
- 对于用逗号分隔的逻辑或:
"data,information"
==",".join(['data', 'information'])