파이썬 크롤링을 해서 엑셀에 저장하는 도중 특정 문자열이 포함된 (print 해서 보면 우리눈에는 정상으로 보인다) 경우에는 엑셀파일에 저장하려고 할 경우 에러가 발생한다...
에러는 "openpyxl.utils.exceptions.IllegalCharacterError" 이렇게 뜨는데 관련해서 거의 4시간 동안 인터넷 검색했는데도 명확한 해결책이 안나오던 도중 4시간 끝에 겨우 해결했다.
시도해본 방법은
pip instasll xlsxwriter,
pip install unidecode,
text.encode('utf-8').strip(),
applymap(lambda x: ILLEGAL_CHARACTERS_RE.sub(r'', x) if isinstance(x, str) else x)
encode("ascii",errors="ignore")
등등...
인터넷에 검색해도 python + openpyxl 조합은 검색하면 주로 기본 읽어오기 쓰기만 나오지 상세내용을 다루는 글도 많이 없었다.
검색하면 openpyxl 공식 웹싸이트만 주르륵...
해결한 방법은 아래와 같다.
추가 install 할 필요도 없고 아래 모듈 import한 후에
from openpyxl.cell.cell import ILLEGAL_CHARACTERS_RE
아래와 같이 하면 된다.
수정할텍스트 = ILLEGAL_CHARACTERS_RE.sub(r'',수정할텍스트)
해결책 찾아서 너무 기쁘다.
마지막쯤에는 눈물 날 뻔 했다.
'개발 > 이게 왜 안돼?' 카테고리의 다른 글
[맥/Homebrew] homebrew install 에러 (1) | 2022.01.01 |
---|---|
[맥/Homebrew] Error: Cannot install on Intel processor in ARM default prefix (/opt/homebrew)! (0) | 2022.01.01 |
[CGI][C] cgi c 프로그래밍 Internal Server Error 가 나는 이유 (0) | 2021.10.18 |
[2021년 10월][tensorflow][keras] ModuleNotFoundError: No module named 'keras.api' (2) | 2021.10.11 |
[2021년 3월] 맥북에서 MySQL Workbench 가 안열려요 (0) | 2021.03.06 |