获取Twitter坐标字段时出现'NoneType'对象不可下标错误
好的,我有一个代码可以从推特上收集数据,但当我加入坐标字段的时候就出错了。这个代码能运行几次,但最后总是会出现这个错误。
from tweepy import Stream
from tweepy import OAuthHandler
from tweepy.streaming import StreamListener
import time
import string
import json
import re
ckey ='mykey'
csecret ='mykey'
atoken = 'mykey'
asecret = 'mykey'
class listener(StreamListener):
def on_data(self, data):
try:
jsonData=json.loads(data)
geo_lat=jsonData['geo']['coordinates'][0] // field that get error
geo_long=jsonData['geo']['coordinates'][1] // field that get erro
savethis=+str(geo_lat)+', '+str(geo_long)
print unicode(savethis).encode("utf-8")
return True
except BaseException, e:
print 'Falied on data,',str(e)
time.sleep(5)
def on_error(self, status):
print status
auth = OAuthHandler(ckey, csecret)
auth.set_access_token(atoken, asecret)
twitterStream = Stream(auth, listener())
#twitterStream.filter(locations=[-78,15,-70,18 ])
twitterStream.filter(locations=[-74,40,-73,41])
错误 -
Traceback (most recent call last):
File "C:/Users/Kevonia/Dropbox/Major Project/Python Workspace/database&filerwithbugs.py", line 46, in on_data
geo_lat=jsonData['geo']['coordinates'][0]
TypeError: 'NoneType' object is not subscriptable
1 个回答
0
在这个JSON文本中,jsonData
、jsonData['geo']
或者jsonData['geo']['coordinates']
其中之一被设置成了null
,在Python中这表示为None
。
>>> None['whatever']
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'NoneType' object is not subscriptable