对于我的研究,我试图从与某些关键字相关的推文中获取坐标或地名。我有很少的编程经验,在Python中甚至更少,但我正在尝试:)。我正在使用Twython来发送推文。我能够获取推文,tweetid和用户名,但不能获取地点坐标或地名。
到目前为止,我所获得的是来自Twython的标准流媒体系列,只做了一些修改:
APP_KEY = '***'
APP_SECRET = '***'
OAUTH_TOKEN = '***'
OAUTH_TOKEN_SECRET = '***'
from pprint import pprint
from twython import TwythonStreamer
class MyStreamer(TwythonStreamer):
def on_success(self, data):
if 'text' in data:
print data['text'].encode('utf-8')
if 'id_str' in data:
print 'Tweetid: '+ data['id_str'].encode('utf-8')
if 'user' in data:
print 'Username: '+ data['user']['screen_name'].encode('utf-8')
print data['coordinates']['coordinates']
print
print '-----------------------------------------------'
print
def on_error(self, status_code, data):
print status_code
self.disconnect()
stream = MyStreamer(APP_KEY, APP_SECRET, OAUTH_TOKEN, OAUTH_TOKEN_SECRET)
stream.statuses.filter(track='ajax')
我得到的错误是: “打印数据['坐标'] ['坐标'] TypeError:'NoneType'对象没有属性' getitem '“
现在我可以看到您可能无法使用相同的方法来调用坐标?但那就是我的编程知识结束的地方,遗憾的是:)。解决方案可能很简单但无法在任何地方找到它!
提前多多谢谢!
亲切的问候,
吉姆
答案 0 :(得分:2)
https://dev.twitter.com/docs/platform-objects/tweets
坐标可以为空,这意味着它们不一定存在。 您可以像对待其他字段一样测试它们的存在:
if 'coordinates' in data:
...