본문 바로가기
카테고리 없음

Python 오류 'KeyError' 해결법: 딕셔너리 접근 오류 고치기

by vibespace 2025. 3. 22.

'KeyError'란 무엇인가?

KeyError는 Python에서 딕셔너리(dictionary)에서 존재하지 않는 키에 접근하려고 할 때 발생하는 오류입니다. 딕셔너리는 키-값 쌍으로 이루어진 자료형이며, 키가 존재하지 않으면 해당 키에 대한 값을 가져올 수 없습니다. 이때 발생하는 오류가 바로 KeyError입니다.

'KeyError' 발생 원인

KeyError가 발생하는 원인은 매우 간단합니다. 딕셔너리에서 접근하려는 키가 존재하지 않거나 잘못된 키를 사용한 경우 이 오류가 발생합니다. 예를 들어, 아래와 같이 딕셔너리에서 존재하지 않는 키를 참조하면 오류가 발생합니다.

'KeyError' 발생 예시와 해결 방법

이제 KeyError가 발생하는 대표적인 예시와 그 해결 방법을 살펴보겠습니다.

1. 존재하지 않는 키 접근

가장 흔한 원인은 딕셔너리에 존재하지 않는 키를 참조하려는 경우입니다. 아래 예시에서 딕셔너리에는 'apple' 키가 없는데 이를 참조하려고 할 때 KeyError가 발생합니다.

오류 발생 예시

fruit = {"banana": 3, "orange": 5}
print(fruit["apple"])  # KeyError: 'apple'

해결 방법

딕셔너리에서 특정 키가 존재하는지 먼저 확인한 후 값을 접근하는 것이 좋습니다. 존재하지 않는 키에 접근하려고 할 때 KeyError가 발생하지 않도록 in 연산자를 사용하여 키가 존재하는지 확인할 수 있습니다.

if "apple" in fruit:
    print(fruit["apple"])
else:
    print("키 'apple'이 존재하지 않습니다.")  # 해결됨

2. 잘못된 키 이름 사용

딕셔너리에 존재하는 키의 이름을 잘못 입력한 경우에도 KeyError가 발생할 수 있습니다. 예를 들어, 대소문자 구분을 정확히 하지 않으면 오류가 발생할 수 있습니다.

오류 발생 예시

fruit = {"banana": 3, "orange": 5}
print(fruit["Banana"])  # KeyError: 'Banana'

해결 방법

딕셔너리 키는 대소문자를 구분하므로 정확한 키 이름을 사용해야 합니다. 키 이름을 정확히 입력하거나, 키를 조회하기 전에 해당 키가 올바르게 입력되었는지 확인하는 것이 중요합니다.

fruit = {"banana": 3, "orange": 5}
print(fruit["banana"])  # 해결됨

3. get() 메소드 사용

딕셔너리에서 키가 존재하지 않는 경우, get() 메소드를 사용하면 KeyError를 방지할 수 있습니다. get() 메소드는 키가 존재하지 않을 때 기본값을 반환하거나, 기본값을 설정할 수 있습니다.

오류 발생 예시

fruit = {"banana": 3, "orange": 5}
print(fruit.get("apple"))  # None 반환 (KeyError 발생하지 않음)

해결 방법

키가 존재하지 않을 때 기본값을 반환받도록 get() 메소드를 사용하는 것이 좋습니다. 기본값을 설정하면 키가 존재하지 않더라도 오류를 방지할 수 있습니다.

print(fruit.get("apple", "키가 존재하지 않습니다."))  # 해결됨

'KeyError' 예방을 위한 팁

KeyError를 예방하려면 다음과 같은 방법을 고려해야 합니다:

  • 키 존재 여부 확인: 딕셔너리에서 키를 접근하기 전에 해당 키가 존재하는지 확인해야 합니다. if key in dictionary:와 같은 구문을 사용하여 키가 존재하는지 확인할 수 있습니다.
  • get() 메소드 사용: get() 메소드를 사용하면 키가 없을 경우 기본값을 반환하게 되어, KeyError를 예방할 수 있습니다.
  • 예외 처리: try-except 구문을 사용하여 예외를 처리하고 KeyError가 발생했을 때 적절히 대처할 수 있습니다.
  • 딕셔너리 키 확인: 딕셔너리의 모든 키 목록을 확인하려면 keys() 메소드를 사용할 수 있습니다. 이 방법을 사용하여 원하는 키가 존재하는지 확인할 수 있습니다.

결론

KeyError는 Python에서 딕셔너리에서 존재하지 않는 키에 접근하려 할 때 발생하는 오류입니다. 이 오류를 해결하려면 키가 딕셔너리에 존재하는지 확인하거나, get() 메소드를 사용하여 기본값을 반환받을 수 있습니다. 또한, 딕셔너리에서 키를 정확하게 입력하고, 예외 처리를 통해 안정적인 코드를 작성하는 것이 중요합니다. 이러한 방법을 통해 KeyError를 예방하고 Python 코드에서 더 안전하게 딕셔너리 값을 다룰 수 있습니다.