2016-07-04 2 views
0

나는 screen_name을 사용하여 tweepy를 사용하여 특정 사람의 마지막 트윗을 가져 오는 장고 앱을 가지고 있습니다. 그러나 screen_name 필드는 내 응용 프로그램에서 선택 사항이므로 비어 있거나 존재하지 않는 screen_names가있을 수 있습니다.화면 이름 존재 여부 확인

그러나이 경우 (예 : user_lookup을 사용하는 경우) Tweepy는 TweepyError 예외를 시작하고 응용 프로그램이 중지됩니다. 이 문제를 처리 할 수있는 방법이 있습니까? 방금 응용 프로그램을 멈추지 않고 Twitter의 screen_name이 있는지 확인하고 True 또는 False 문을 반환하고 싶습니다.

+0

이 (사회 계정으로 자주 발생 확실히 할 것이다), 응용 프로그램의 목적에 따라 달라집니다. 첫 번째 해결책은 기본 정보/편집 할 수없는 기본 계정 생성 (잠긴 필드이지만 다중 로그 됨) ... 답변이 도움이되지 않는다면 목적 코드 예제 ... – Destrif

+0

'try ... except' 문은 어떻습니까? ? 너 그거 해봤 니? – xyres

답변

0

Tweepy가 TweepyError 예외를 발생시킬 때 응용 프로그램이 중지되지 않도록하려면 pythontry...except 문을 사용하는 전형적인 경우입니다.

try: 
    # do whatever with tweepy here 
except TweepyError: 
    # do what you want to when the lookup fails 
    pass 

그러나 트위터 이름이 문제의 원인이되는 응용 프로그램에 대해 선택 사항이라고 언급했습니다. 나는 왜 당신이 이것에 대한 간단한 점검을 할 수 없는지 보지 못합니다.

if model_instance.twitter_name is not None: 
    # do the tweepy stuff here 
1

이 당신을 도울 것입니다 :의 당신의 필드 이름이 twitter_namemodel_instance라고하자가 속한 모델의 인스턴스입니다. 이렇게하면 사용자 배열에있는 각 트위터 핸들의 유효성/존재 상태를 확인할 수 있습니다. 당신은 트위터 또는 계정 (당신이 인증으로 트위터를 사용하는 경우) 사용자가 어떤 로그인없이 응용 프로그램을 사용할 수 있다고 생각한다면

import tweepy 
from tweepy import OAuthHandler 



consumer_key = "" 
consumer_secret = "" 
access_key = "" 
access_secret = "" 


auth = OAuthHandler(consumer_key, consumer_secret) 
auth.set_access_token(access_key, access_secret) 
api = tweepy.API(auth) 
users=["twitterhandle1","twitterhandle2"] 

for x in users: 
    try: 
     u=api.get_user(x) 
     print (u.id_str) 
     print (u.screen_name) 
    except Exception: 
      pass