2016-07-04 4 views
0

私はこの2つの特定のキーerror.byを渡そうとしています。特定のエラーpythonを渡す

try:  
    per_visit_large_store = 100 * dic_data[mac]['Retail Store']['No. of visit to large store']/float(dic_data[mac]['Total no. of walk_in']) 
except KeyError: 'Retail Store' 
    pass 

try:  
    per_visit_large_store = 100 * dic_data[mac]['Retail Store']['No. of visit to large store']/float(dic_data[mac]['Total no. of walk_in']) 
except KeyError: 'Retail Store': 
    pass 

本の両方は、それぞれ、インデント、構文エラーが発生します。私は間違って何をしているのですか?

try: 
    ... 
except KeyError: 
    pass 

あなたが特定のキーをキャッチする場合、あなたはエラーのメッセージを確認する必要があります:

d = {'a':1, 'b':2} 
try: 
    d['c'] 
except KeyError as e: 
    if e.message == 'c': 
     blah 
    else: 
     raise KeyError, e 

私は正しい構文があるのpython 2.7

+0

キーが「小売店」の場合にのみKeyErrorをキャッチしようとしていますか? –

+0

@DanielRosemanはい –

答えて

0

構文が間違っている、それは次のようになります。

try: 
    # some code there 
except KeyError as e: 
    caused_key = e.args[0] 
    if caused_key == 'Retail Store': 
     pass 

Python Exception tutorial

幸運もっと見る:)!

+0

これは、すべてのキーエラー、または特に「小売店」でのエラーでしょうか? –

+0

@ranadanこれはすべての重要なエラーを渡すでしょう –

+0

私は特定のものを探していました:) –

0

を使用していますこれは、キーが 'c'の場合にのみコードを継続します。そうでない場合は、エラーが発生します。

+0

それは私がthi特定のものを渡したいすべての重要なエラーを渡すでしょう。 –

+0

ちょっと待ってみてください。 –

+0

@ranadan私が誤解しているのを待ってください:私の答えを今すぐチェックしてください – TerryA

関連する問題