JY Tech

[파이썬] raise KeyError(key) from err 본문

Programming/Error Solution

[파이썬] raise KeyError(key) from err

J.Dragon 2023. 11. 27. 15:44

오늘은 조금 멍청한 실수...를 하는과정에서 알게 된 사실이다.

 

복약과 관련된 프로그램을 만들어보려고 의약품안전나라에서 제공하는 의약품 낱알식별 파일을 받았다

이런식으로 표가 구성 돼 있고 F열의 사진을 저장하고 B열의 이름을 적용하는 작업을 하는데

for index, row in df.iterrows():
    link = row['F']  # F 열에 있는 링크
    image_name = row['B']  # B 열에 있는 이미지 이름

 

 이런식으로 코드를 짰다. 그랬더니

raise KeyError(key) from err KeyError: 'F'

 

이런 오류가 떴다.

해당 오류의 원인은 F열에 대한 키를 찾을 수 없어서 발생하는 것인데 한마디로 열 이름이 잘못됐다는 소리다.

아무리 생각해도 B열과 F열에 대한 값인데 뭐지 싶어서 여기저기 뒤지다가

 

열 이름을 찾는 방법을 발견했다.

 

import pandas as pd

# 엑셀 파일 경로
excel_file_path = '파일명.xlsx'

# 엑셀 파일 읽기
df = pd.read_excel(excel_file_path)

# 모든 열의 이름 출력
print(df.columns)

이런식으로

print(df.colunms)를 해주면 열 이름이 뜬다.

 

알고보니 B열 F열이 아닌 '품목명'열 '큰제품이미지'열 이였던 것이다...

CSV나 Excel 파일을 읽을 때 첫번째 행과 열은 이름을 포함하고 있다.

(사실 당연한 것이다.. 사람의 입장에서야 어디서부터가 데이터의 시작점인지 알지만 컴퓨터는 그냥 정해진대로 B의 첫번째부터 돌았을 뿐이다)

 

파이썬으로 엑셀을 읽어올 때 참고하면 될 것 같다.