Python CPython 3.14.3에서 파서를 실행해 확인했습니다.
Unterminated string starting at: line L column C (char N)
파서가 여는 따옴표를 찾았고, 짝이 되는 닫는 따옴표 없이 입력의 끝에 도달했습니다. 파이썬이 파일의 끝이 아니라 문자열의 시작을 가리키는 이유는, 손을 쓸 수 있는 쪽이 시작이기 때문입니다.
JSON을 붙여넣고 어디서 깨지는지 정확히 확인하기
입력
붙여 넣은 것은 여러분의 브라우저를 떠나지 않습니다. connect-src 허용 목록 덕분에 이는 약속이 아니라 브라우저가 강제하는 보장입니다. 직접 확인하기
실제 원인
어느 쪽이 답인 경우가 많은지, 그 순서대로 정리했습니다.
-
01 값 안의 이스케이프되지 않은 따옴표
안쪽 따옴표가 문자열을 일찍 끝내고, 문서의 나머지가 새 문자열 안에서 계속 흘러갑니다.
-
02 닫는 따옴표를 이스케이프해 버리는 끝의 백슬래시
백슬래시로 끝나는 윈도우 디렉터리 경로가 정확히 이 일을 합니다.
-
03 파일이 잘림
크기 제한, 끊긴 연결, 또는 쓰다 만 기록 때문에 값 중간에서 잘렸습니다.
다른 런타임에서의 같은 실수
밑바탕의 문제는 똑같고, 다른 건 문구뿐입니다. 동료가 이 중 하나를 들고 왔다면, 그 사람이 보고 있는 건 여러분이 보는 것과 같습니다.
| JavaScript (V8) | Unterminated string in JSON at position 8 (line 1 column 9) |
|---|
자주 묻는 질문
- 열어 보면 파일이 멀쩡해 보입니다. 이제 어떻게 하죠?
- 바이트 수를 기대치와 비교하고 마지막 줄을 보세요. 버퍼 경계에서 잘린 파일은 다른 단서 없이 단어 중간에서 끝나 있는 경우가 많습니다.