반응형
KeyError
KeyError
는 Python에서 딕셔너리에서 존재하지 않는 키를 참조할 때 발생하는 오류입니다.
1. 오류 설명
- 딕셔너리에서 특정 키로 값을 찾으려고 할 때, 해당 키가 딕셔너리에 없으면
KeyError
가 발생합니다. KeyError
는 일반적으로 키의 존재 여부를 확인하지 않고 딕셔너리에서 키를 참조할 때 발생합니다.
2. 오류 예시
# 예제: 존재하지 않는 키에 접근
my_dict = {"name": "Alice", "age": 25}
print(my_dict["address"]) # KeyError 발생
3. 오류 해결책
- 키의 존재 여부를 확인하기:
- 딕셔너리에 키가 존재하는지 확인한 후 값을 가져옵니다.
if "address" in my_dict: print(my_dict["address"]) else: print("주소 키가 존재하지 않습니다.")
- 딕셔너리에 키가 존재하는지 확인한 후 값을 가져옵니다.
dict.get()
메서드 사용:get()
메서드는 키가 없을 때 기본값을 반환하므로 안전합니다.print(my_dict.get("address", "키가 없습니다.")) # "키가 없습니다." 출력
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 |
댓글