2016-08-30 3 views
1

私はcompanyNumbersというintのリストを持っています。これらは、有効であることをテストするオンラインAPIに対してチェックされています。Python構造化ネストされたtry以外の文

いくつかの会社の番号が正しくない最初の桁を持っているので、番号を確認してから、最初の数字を引いた数値を再チェックするためにHTTPエラーが受信された場合(無効な番号を示します)

これが再び無効な場合は、数値がエラーシートに書き込まれます。それ以外の場合は、correctNumbersに格納されます。

for companyNumber in companyNumbers: 
    try: 
     r = s.profile(companyNumber).json() 
    except HTTPError: 
     try: 
      r = s.profile(companyNumber[1:]).json() 
     except HTTPError: 
      errorSheet.write(i, 0, companyNumber) 
    else: 
     correctNumbers.append(r) 

try/except/else文をどのように構造化するかわかりません。いずれかのtryブロックが成功した場合、私はelseステートメントをアクティブにする必要があります。現在、ネストされたtryブロックは何もしないようです。

答えて

1

tryエラーが発生するまで、そのネストの下でコードを実行します。その出力をそのレイヤーに配置する必要があります。

for companyNumber in companyNumbers: 
    try: 
     r = s.profile(companyNumber).json() 
     correctNumbers.append(r) 
    except HTTPError: 
     try: 
      r = s.profile(companyNumber[1:]).json() 
      correctNumbers.append(r) 
     except HTTPError: 
      errorSheet.write(i, 0, companyNumber) 
+0

これは私にとって怪しいようです。繰り返しコード 'correctNumbers.append(r)'があります。 – LondonRob

関連する問題