파이썬/에러 디버깅

KeyError

kimble2 2024. 8. 18. 14:30
반응형

 

KeyError는 Python에서 딕셔너리에서 존재하지 않는 키를 접근하려고 할 때 발생하는 오류입니다. 이 오류는 주로 딕셔너리에서 값을 검색할 때 주어진 키가 딕셔너리에 없을 경우에 발생합니다. 다음은 KeyError의 일반적인 예시 3가지와 그에 대한 해결 방법입니다.

 

존재하지 않는 키로 딕셔너리 접근

문제 코드:

person = {'name': 'Alice', 'age': 30}
print(person['gender'])
 

오류 메시지:

 

KeyError: 'gender'
 

해결 방법: get 메소드를 사용하여 키가 존재하지 않을 경우 기본값을 반환하도록 합니다.

 

print(person.get('gender', 'Not specified'))
 

또는 키가 딕셔너리에 있는지 먼저 확인할 수 있습니다.

 

if 'gender' in person:
    print(person['gender'])
else:
    print("Key not found")
 

딕셔너리 수정 시 키 오류

문제 코드:

 

data = {'x': 100, 'y': 200}
data['z'] += 1
 

오류 메시지:

 

KeyError: 'z'
 

해결 방법: 키가 딕셔너리에 있는지 확인하고, 없으면 새로운 값을 설정합니다.

 

if 'z' in data:
    data['z'] += 1
else:
    data['z'] = 1
 

중첩된 딕셔너리에서 키 접근

문제 코드:

 

config = {'settings': {'theme': 'dark'}}
print(config['settings']['color'])
 

오류 메시지:

 

KeyError: 'color'
 

해결 방법: 중첩된 딕셔너리에서 get을 연속적으로 사용하여 안전하게 키에 접근합니다.

 

color = config.get('settings', {}).get('color', 'default color')
print(color)
 
 

이러한 예시들은 Python에서 KeyError를 방지하기 위해 키가 딕셔너리에 있는지 확인하거나 get 메소드를 사용하여 기본값을 지정하는 것의 중요성을 보여줍니다. 이를 통해 프로그램이 예상치 못한 오류로 중단되는 것을 방지할 수 있습니다.

 

반응형