2016-12-25 6 views
1

私はPythonで同義語プログラムを構築しています。 私はAPI_KEYを持って、私はJSON出力に大きな巨大シソーラスAPIを使用しているときのPythonエラー

を取得することができるよ。しかし、いくつかの「ABRIGATE」のような言葉と、より多くのために、私はターミナル

urlinを見上げるのも
Traceback (most recent call last): 
    File "word_power.py", line 26, in <module> 
    json_obj = urllib2.urlopen(final_url) 
    File "/usr/lib/python2.7/urllib2.py", line 154, in urlopen 
    return opener.open(url, data, timeout) 
    File "/usr/lib/python2.7/urllib2.py", line 435, in open 
    response = meth(req, response) 
    File "/usr/lib/python2.7/urllib2.py", line 548, in http_response 
    'http', request, response, code, msg, hdrs) 
    File "/usr/lib/python2.7/urllib2.py", line 473, in error 
    return self._call_chain(*args) 
    File "/usr/lib/python2.7/urllib2.py", line 407, in _call_chain 
    result = func(*args) 
    File "/usr/lib/python2.7/urllib2.py", line 556, in http_error_default 
    raise HTTPError(req.get_full_url(), code, msg, hdrs, fp) 
urllib2.HTTPError: HTTP Error 404: Not Found 

に、このエラーを取得しますブラウザで空白のページが表示されます。

http://words.bighugelabs.com/api/2/------API_KEY------/abrigate/json 

私はJSON結果が存在するかどうかを検出できないと思います。

私がチェックしてるとのコードは次のとおりです。

json_obj = urllib2.urlopen(final_url) 

     data = json.load(json_obj) 

     if not data: 
      print 'Empty' 

     if 'noun' not in data: 
      print 'NO NOUN' 
      #target.write(" ]\n\n"); 

     if 'verb' not in data: 
      print 'NO VERB' 
      #target.write(" ]\n\n") 

     if 'adjective' not in data: 
      print 'NO ADJECTIVE' 
      #target.write(" ]\n\n") 

あなたはAPIがエラーを返し、それらのインスタンスをキャッチする必要が

答えて

1

を助けてください:

data = None 
try: 
    json_obj = urllib2.urlopen(final_url) 
    data = json.load(json_obj) 
except urllib2.HTTPError, e: 
    if e.code == '404': 
     print('Entry not found for URL {}'.format(final_url)) 
    else: 
     print('Got {} - {} for URL {}.'.format(e.code, e.msg, final_url)) 

あなたはまた、向上させることができますあなたの確認ロジック:

for key,value in data.items(): 
    print('Word type is: {}'.format(key)) 
    for prop, values in value.items(): 
    print('\t{} : {}'.format(prop, ','.join(values))) 
関連する問題