2017-03-10 1 views
1

나는 트위터와 tweepy의 스트리밍 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