2016-07-04 17 views
0

私はtweepyを使って特定の人の最後のつぶやきを取得するdjangoアプリを持っています。しかし、私のアプリケーションでは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 

ただし、あなたのアプリケーションではTwitterの名前がオプションであり、問​​題を引き起こしていると述べました。私はあなたがなぜこれについて簡単なチェックをすることができないのか分かりません。さんがあなたのフィールド名はtwitter_namemodel_instanceあるとしましょう、それが所属するモデルのインスタンスです:

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

これはあなたを助けます。これは、ユーザ配列に存在する各twitterハンドルの有効/存在ステータスを取得するのに役立ちます。

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 
関連する問題