반응형
    
    
    
  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 | 
										
									
										
									
										
									
										
									
댓글