Notice
Recent Posts
Recent Comments
Link
JY Tech
[파이썬] raise KeyError(key) from err 본문
오늘은 조금 멍청한 실수...를 하는과정에서 알게 된 사실이다.
복약과 관련된 프로그램을 만들어보려고 의약품안전나라에서 제공하는 의약품 낱알식별 파일을 받았다

이런식으로 표가 구성 돼 있고 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의 첫번째부터 돌았을 뿐이다)
파이썬으로 엑셀을 읽어올 때 참고하면 될 것 같다.
'Programming > Error Solution' 카테고리의 다른 글
[Android] unable to instantiate activity componentinfo (0) | 2024.02.21 |
---|---|
[안드로이드]findViewById오류 (0) | 2023.12.09 |
[파이썬]xlrd.biffh.XLRDError(xlrd오류) (1) | 2023.11.10 |
[C#/윈폼]"도구상자 항목 '###'을(를) 로드하지 못했습니다. 해당 항목은 도구상자에서 제거됩니다. (0) | 2023.04.30 |
[파이썬,sqlite] incorrect number of bindings supplied. the current statement uses 1 and there are 3 supplied (0) | 2023.04.21 |