ホーム › エラー解決 › Python › KeyError
Python ERROR

Python KeyError の原因と解決法

辞書(dict)にないキーを指定したときのエラーです。get()やin演算子で安全に扱えます。

このエラーメッセージ

KeyError: 'age'

原因

❌ エラーになるコード

NG
user = {"name": "Taro"}
print(user["age"])

✅ 修正したコード

OK
user = {"name": "Taro"}
print(user.get("age"))          # 無ければNone
print(user.get("age", 0))       # 無ければ0
if "age" in user:
    print(user["age"])
▶ 修正済みコードを実行エディタで開く
progoのPython実行環境(インストール不要・登録不要)でその場で動作を確認できます。

解決のポイント

存在しないかもしれないキーはdict.get(キー)で取ります。キーが無ければ例外にならずNone(第2引数で既定値も指定可)を返します。事前にif "age" in user:で確認するのも確実です。

よくある質問

get()と[]の違いは?
[]はキーが無いとKeyError、get()はNoneや既定値を返します。安全なのはget()です。
キー一覧を確認したい
user.keys() で全キーを取得できます。