본문 바로가기
Error(Exception)/ERROR-PYTHON

[python] KeyError

by 조조군 2024. 11. 25.
반응형

KeyError

KeyError는 Python에서 딕셔너리에서 존재하지 않는 키를 참조할 때 발생하는 오류입니다.


1. 오류 설명

  • 딕셔너리에서 특정 키로 값을 찾으려고 할 때, 해당 키가 딕셔너리에 없으면 KeyError가 발생합니다.
  • KeyError는 일반적으로 키의 존재 여부를 확인하지 않고 딕셔너리에서 키를 참조할 때 발생합니다.

2. 오류 예시

# 예제: 존재하지 않는 키에 접근
my_dict = {"name": "Alice", "age": 25}
print(my_dict["address"])  # KeyError 발생

3. 오류 해결책

  1. 키의 존재 여부를 확인하기:
    • 딕셔너리에 키가 존재하는지 확인한 후 값을 가져옵니다.
      if "address" in my_dict:
        print(my_dict["address"])
      else:
        print("주소 키가 존재하지 않습니다.")
  2. dict.get() 메서드 사용:
    • get() 메서드는 키가 없을 때 기본값을 반환하므로 안전합니다.
      print(my_dict.get("address", "키가 없습니다."))  # "키가 없습니다." 출력
  3. try/except로 예외 처리:
    • 오류를 처리하여 프로그램이 중단되지 않도록 합니다.
      try:
        print(my_dict["address"])
      except KeyError:
        print("KeyError: 해당 키가 딕셔너리에 없습니다.")

4. 오류 예제 코드 및 해결 코드

오류 코드:

my_dict = {"name": "Alice", "age": 25}
print(my_dict["address"])  # KeyError 발생

해결 코드 1: 키 존재 여부 확인

my_dict = {"name": "Alice", "age": 25}
if "address" in my_dict:
    print(my_dict["address"])
else:
    print("주소 키가 존재하지 않습니다.")

해결 코드 2: get() 메서드 사용

my_dict = {"name": "Alice", "age": 25}
print(my_dict.get("address", "키가 없습니다."))  # 키가 없을 경우 기본 메시지 출력

해결 코드 3: try/except 사용

my_dict = {"name": "Alice", "age": 25}
try:
    print(my_dict["address"])
except KeyError:
    print("KeyError: 해당 키가 딕셔너리에 없습니다.")

이처럼 상황에 따라 적절한 방법으로 KeyError를 방지하거나 처리할 수 있습니다.

반응형

'Error(Exception) > ERROR-PYTHON' 카테고리의 다른 글

[python] MemoryError  (0) 2024.11.27
[python] KeyboardInterrupt  (0) 2024.11.26
[python] IndexError  (0) 2024.11.24
[python] ModuleNotFoundError  (0) 2024.11.23
[python] RuntimeError  (0) 2024.11.22

댓글