에러
에러 예시
import json
a = '\ 하얀설표'
b = json.loads(a)
print(b)
위 예시 코드를 실행하면 다음과 같은 에러 메세지를 확인할 수 있다.
Traceback (most recent call last):
File "white.seolpyo.com.py", line 3, in <module>
b = json.loads(a)
^^^^^^^^
File "C:\Program Files\Python311\Lib\json\__init__.py", line 346, in loads
return _default_decoder.decode(s)
^^^^^^^^^^^^^^^^^^
File "C:\Program Files\Python311\Lib\json\decoder.py", line 337, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Program Files\Python311\Lib\json\decoder.py", line 355, in raw_decode
raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
해결방법
해결방법은 2가지 체크리스트를 점검하는 것이다.
- json 형식으로 작성된 문자열이 맞는지?
- json에서 인식할 수 없는 문자열이 섞여 있는 것은 아닌지?
json 형식으로 작성된 문자열이지만, 인식할 수 없는 문자열이 섞여있다면, 해당 문자를 인식할 수 있도록 수정해주는 것이다.
이런 문제는 주로 백슬래시가 포함된 이스케이프 문자에서 주로 발생한다.
잘못된 문자열로 인한 문제라면 json 모듈에서 제공하는 json.dumps 함수를 이용하면 손쉽게 문제를 해결할 수 있다.
자세한 내용은 이 글에서 확인할 수 있다.