在Python中按地点过滤Twitter流
我正在使用Python的Twitter API封装库(不是tweepy,也许这就是我的问题)。另外,我在使用Spyder这个开发环境。我可以很容易地通过关键词进行过滤,但在通过位置进行过滤时遇到了麻烦。我尝试了以下代码:
auth = twitter.oauth.OAuth(OAUTH_TOKEN,OAUTH_TOKEN_SECRET,
CONSUMER_KEY,CONSUMER_SECRET)
twitter_api = twitter.Twitter(auth=auth)
twitter_stream = twitter.TwitterStream(auth=twitter_api.auth)
stream = twitter_stream.statuses.filter(locations=[-6.38,49.87,1.77,55.81])
但是我得到了这个错误:
details: Location track items must be given as pairs of comma separated lat/longs:
[Ljava.lang.String;@1f1dbc92
我尝试了几种不同的写法,但都没有成功,比如传递字符串和浮点数。有没有人能告诉我该怎么正确地做这个?
2 个回答
1
问题出在这一行 stream = twitter_stream.statuses.filter(locations=[-6.38,49.87,1.77,55.81])
locations
应该是一个包含元组的列表,每个元组里有一个纬度和一个经度。
一个可能的格式是 >> stream = twitter_stream.statuses.filter(locations=[(-6.38,49.87), (1.77,55.81)])
4
其实,经过一些猜测,locations这个参数应该是一个字符串,里面包含用逗号分隔的经纬度对,第一个对代表你关注区域的西南角,第二个对则是东北角。所以在你的例子中,你应该这样写:
stream = twitter_stream.statuses.filter(locations="-6.38,49.87,1.77,55.81")