본문 바로가기
파이썬/디버깅

json.decoder.JSONDecodeError: Unexpected UTF-8 BOM (decode using utf-8-sig) 파이썬 오류 해결 방법 쉽게 해결하기

by startcoding 2021. 9. 15.

안녕하세요!!

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)

 

댓글