PythonのKeyError例外処理の例
1. PythonのKeyError例外とは何ですか?
PythonのKeyErrorは、存在しないキーにアクセスしようとしたときに発生します。これは組み込みの例外クラスの一つであり、dictやキーと値のペアを持つオブジェクトを使用する多くのモジュールで発生します。
2. Pythonの辞書キーエラー
プログラムでKeyErrorが発生する簡単な例を見てみましょう。
emp_dict = {'Name': 'Pankaj', 'ID': 1}
emp_id = emp_dict['ID']
print(emp_id)
emp_role = emp_dict['Role']
print(emp_role)
出力:
1
Traceback (most recent call last):
File "/Users/scdev/Documents/PycharmProjects/hello-world/scdev/errors/keyerror_examples.py", line 6, in <module>
emp_role = emp_dict['Role']
KeyError: 'Role'
3. PythonのKeyError例外処理
try-exceptブロックを使用してKeyError例外を処理できます。上記のKeyError例外を処理しましょう。
emp_dict = {'Name': 'Pankaj', 'ID': 1}
try:
emp_id = emp_dict['ID']
print(emp_id)
emp_role = emp_dict['Role']
print(emp_role)
except KeyError as ke:
print('Key Not Found in Employee Dictionary:', ke)
結果:
1
Key Not Found in Employee Dictionary: 'Role'
辞書のキーにアクセスする際にKeyErrorを回避する方法
キーの値にアクセスするために、get()関数を使用することでKeyErrorを回避できます。もしキーが存在しない場合、Noneが返されます。また、キーが存在しない場合に返すデフォルト値も指定することができます。
emp_dict = {'Name': 'Pankaj', 'ID': 1}
emp_id = emp_dict.get('ID')
emp_role = emp_dict.get('Role')
emp_salary = emp_dict.get('Salary', 0)
print(f'Employee[ID:{emp_id}, Role:{emp_role}, Salary:{emp_salary}]')
出力:従業員[ID:1、役割:なし、給与:0]
5. パンダモジュールによって発生するKeyError
Pandas DataFrameには、KeyError例外を発生させるいくつかの機能があります。
- rename()
- drop()
6.引用
- Python Exception Handling – Python try except
- KeyError Wiki Page