반응형
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 메소드를 사용하여 기본값을 지정하는 것의 중요성을 보여줍니다. 이를 통해 프로그램이 예상치 못한 오류로 중단되는 것을 방지할 수 있습니다.
반응형
'파이썬 > 에러 디버깅' 카테고리의 다른 글
AttributeError (0) | 2024.08.18 |
---|---|
IndexError (0) | 2024.08.18 |
TypeError: 'int' object is not callable (0) | 2024.08.17 |
TypeError: can't multiply sequence by non-int of type 'list' (0) | 2024.08.17 |
TypeError: can only concatenate str (not "int") to str (0) | 2024.08.17 |