안녕하세요!!
IT꿀팁과 코딩교육컨텐츠를 만드는 스타트코딩입니다.
파이썬 스크래핑을 하던 도중
예상치 못한 오류가 발생하였습니다.
바로 바로....!
json.decoder.JSONDecodeError: Unexpected UTF-8 BOM (decode using utf-8-sig)
라는 오류 인데요.
여러분도 저와 같은 오류가 발생했다면 다음 과정을 따라해서
json.decoder.JSONDecodeError: Unexpected UTF-8 BOM (decode using utf-8-sig)
오류를 해결해 보세요ㅎㅎ
일단 해결 하기 전에
문제의 원인을 파악해야 겠죠?
오류 메세지를 잘 읽어보면
json.decoder.JSONDecodeError -> json 모듈을 사용하는 도중 에러가 발생한 것을 알 수 있습니다.
Unexpected UTF-8 BOM -> BOM 이라는 문자가 예상치 못하게 나왔다
decode using utf-8-sig -> utf-8-sig 로 디코드를 해라
이렇게 친절하게 설명이 나와있네요??
BOM이라는 용어는 위키백과에 따르면
바이트 순서 표시(Byte Order Mark, BOM)는 유니코드 문자 U+FEFF byte order mark로, 매직 넘버로서 문서의 가장 앞에 추가하여 텍스트를 읽는 프로그램에 여러 정보를 전달할 수 있다.
이렇게 되어 있네요. 특정 기능을 하는 문자인데
요렇게 생긴 녀석들입니다.
utf-8-sig 로 디코드 하는 방법은 아래와 같습니다.
1. codes module 사용하기
import codecs
data = codes.decode(response.text, 'utf-8-sig')
2. response에 encoding 속성 추가하기
response.encoding = 'utf-8-sig'
res_data = json.loads(response.text)
댓글