본문으로 건너뛰기
jsonbeautifiers
한국어
Python CPython 3.14.3에서 파서를 실행해 확인했습니다.

Expecting ',' delimiter: line L column C (char N)

파서는 지금의 컨테이너가 쉼표로 이어지기를 기대했습니다. 헷갈리는 점은 위치가 보기에 아무 문제 없는 자리를 가리키는 경우가 많다는 것입니다. 진짜 실수는 조금 앞에 있고, 대개는 의도보다 일찍 문자열을 끝내 버린 따옴표입니다.

JSON을 붙여넣고 어디서 깨지는지 정확히 확인하기

입력

붙여 넣은 것은 여러분의 브라우저를 떠나지 않습니다. connect-src 허용 목록 덕분에 이는 약속이 아니라 브라우저가 강제하는 보장입니다. 직접 확인하기

실제 원인

어느 쪽이 답인 경우가 많은지, 그 순서대로 정리했습니다.

  1. 01 문자열 안의 이스케이프되지 않은 큰따옴표

    안쪽 따옴표가 문자열을 일찍 닫아 버려서, 그 뒤의 텍스트가 쉼표를 기대하던 자리에서 새 토큰으로 읽힙니다. 이 오류에 대한 스택오버플로 최상위 질문의 제목이 말 그대로 "Valid JSON giving JSONDecodeError"인데, 그 한 줄에 경험 전체가 담겨 있습니다.

    깨지는 예

    {"quote": "he said "yes" loudly"}

    되는 예

    {"quote": "he said \"yes\" loudly"}
  2. 02 정말로 쉼표가 빠짐

    객체의 두 멤버 사이, 또는 배열의 두 요소 사이입니다.

  3. 03 닫는 따옴표 앞의 홑 백슬래시

    백슬래시로 끝나는 윈도우 경로는 따옴표를 이스케이프해 버려서 문자열이 계속 이어지고, 다음 쉼표는 파서가 기대하는 자리에 영영 오지 않습니다.

  4. 04 파일이 잘림

    위치가 입력의 끝이라면 잘못 쓴 게 아니라 문서가 잘린 것입니다.

다른 런타임에서의 같은 실수

밑바탕의 문제는 똑같고, 다른 건 문구뿐입니다. 동료가 이 중 하나를 들고 왔다면, 그 사람이 보고 있는 건 여러분이 보는 것과 같습니다.

JavaScript (V8) Expected ',' or '}' after property value in JSON at position N

자주 묻는 질문

제가 보기엔 JSON이 맞는데 왜 실패하나요?
보고된 위치 자체가 아니라 그 바로 앞의 문자를 보세요. 일찍 끝나 버린 문자열은 따옴표 개수를 세기 전까지 보이지 않습니다. 문자열에 색을 입히는 검증기에 붙여 넣으면 1초 만에 드러납니다.
이런 일을 막으려면?
문자열을 이어붙여 JSON을 만들지 마세요. dict를 만들고 json.dumps를 부르면 구조적으로 모든 값이 올바르게 이스케이프됩니다.

지금 고치기

위의 도구에 페이로드를 붙여넣거나, 이 일을 위해 만들어진 도구로 바로 가세요.

문자열 강조해 보기