하얀설표 블로그




해결)json.decoder.JSONDecodeError: Expecting value: line * column * (char *)





( 수정됨)


에러

에러 예시

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가지 체크리스트를 점검하는 것이다.

  1. json 형식으로 작성된 문자열이 맞는지?
  2. json에서 인식할 수 없는 문자열이 섞여 있는 것은 아닌지?

json 형식으로 작성된 문자열이지만, 인식할 수 없는 문자열이 섞여있다면, 해당 문자를 인식할 수 있도록 수정해주는 것이다.
이런 문제는 주로 백슬래시가 포함된 이스케이프 문자에서 주로 발생한다.

잘못된 문자열로 인한 문제라면 json 모듈에서 제공하는 json.dumps 함수를 이용하면 손쉽게 문제를 해결할 수 있다.
자세한 내용은 이 글에서 확인할 수 있다.


공감 : 0







white.seolpyo.com