我正在尝试使用Twitter和tweepy的Streaming Api来获取一些通过一些关键字(已经完成)和他们的坐标过滤的推文,我可以稍后在谷歌地图上绘制。但是,当我执行以下代码以仅存储坐标不为空的推文时,我收到错误。
代码:
def on_data(self, data):
json_object = json.loads(data)
if (json_object["user"]["coordinates"]!="null"):
f.write(data)
一段时间后,我收到一条错误
Key error:user
有人能告诉我这个错误发生的原因以及可以采取哪些措施来更好地解决或理解这个错误。
答案 0 :(得分:3)
您收到此错误,因为并非所有推文都必须包含user
字段。
def on_data(self, data):
json_object = json.loads(data)
# next statement will short circuit if 'user' field is not found.
if "user" in json_object and "coordinates" in json_object["user"] and json_object["user"]["coordinates"]!="null":
f.write(data)
或者如果你想优雅地做到这一点 -
def on_data(self, data):
try:
if json_object["user"]["coordinates"]!="null":
f.write(data)
except:
pass