길고 복잡한 JSON 파일에서 데이터를로드하는 Python 코드 :
with open(filename, "r") as f:
data = json.loads(f.read())
(참고 : 최상의 코드 버전은 다음과 같아야합니다.
with open(filename, "r") as f:
data = json.load(f)
그러나 둘 다 비슷한 행동을 보입니다)
많은 유형의 JSON 오류 (구분 기호 누락, 문자열의 잘못된 백 슬래시 등)의 경우 JSON 오류가 발견 된 행 및 열 번호가 포함 된 유용한 메시지를 인쇄합니다.
그러나 다른 유형의 JSON 오류 (목록의 마지막 항목에 쉼표 사용)뿐만 아니라 true / false 대문자와 같은 다른 유형의 경우 Python의 출력은 다음과 같습니다.
Traceback (most recent call last):
File "myfile.py", line 8, in myfunction
config = json.loads(f.read())
File "c:\python27\lib\json\__init__.py", line 326, in loads
return _default_decoder.decode(s)
File "c:\python27\lib\json\decoder.py", line 360, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "c:\python27\lib\json\decoder.py", line 378, in raw_decode
raise ValueError("No JSON object could be decoded")
ValueError: No JSON object could be decoded
해당 유형의 ValueError의 경우 JSON 파일에서 오류가 어디에 있는지 파이썬에게 알려주는 방법은 무엇입니까?
json.load(f)
대신 할 수 있습니다json.loads(f.read())