2017-03-10 10 views
1

私はtwitterとtweepyのStreaming Apiを使用して、いくつかのキーワードでフィルタリングされたつぶやきと、後でGoogleマップにプロットできる座標を取得しようとしています。しかし、座標がnullでないつぶやきのみを格納する次のコードを実行しているときにエラーが発生しています。Tweepy Pythonのつぶやき

コード:

def on_data(self, data): 

    json_object = json.loads(data) 
    if (json_object["user"]["coordinates"]!="null"): 
     f.write(data) 

いくつかの時間後、私は

Key error:user

は、誰が私にこのエラーが起こった理由を教えてもらえますし、どのような手順が可能と言うエラーが出ますこのエラーを解決または理解するために取られました。

答えて

2

このエラーは、必ずしもすべてのツイートに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 
+0

を、その後どのように私はプログラムが何の座標feildsはありませんれたものをスキップすることができますか? – user3930213

+0

@ user3930213回答を編集しました – hashcode55

+0

他のメッセージタイプに注意する必要があります。 [DOC](https://dev.twitter.com/streaming/overview/messages-types) – Jonas

関連する問題