在Python中按位置过滤Twitter流

时间:2014-06-16 16:52:55

标签: python twitter

我正在使用Twitter API的Twitter包装器(不是tweepy,但也许这是我的问题)。另外,我正在使用Spyder IDE。我可以轻松地按轨道过滤,因为我无法确定按位置过滤的确切语法。当我尝试:

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 个答案:

答案 0 :(得分:4)

实际上,经过一些猜测后,显然位置参数应该是一个字符串,其中包含以逗号分隔的经度/纬度对,第一对是西南角,第二对是配对感兴趣的边界框的东北角。所以在你的例子中,你应该写:

stream = twitter_stream.statuses.filter(locations =“ - 6.38,49.87,1.77,55.81”)

答案 1 :(得分:1)

问题出在这一行stream = twitter_stream.statuses.filter(locations=[-6.38,49.87,1.77,55.81])

locations应该是元组列表(lat,lon)

可能的格式可能是>> stream = twitter_stream.statuses.filter(locations=[(-6.38,49.87), (1.77,55.81)])