컴공

DICT to JSON 과 그 과정에서 발생한 SyntaxError: Unexpected non-whitespace character after JSON at position 1303 발생에 대한 대처법

비온뒤엔습해 2023. 1. 28. 16:19

내가 얻은 자료를 바탕으로 그 자료를 dict형태로 가공한뒤 그것을 json형태의 파일로 만들려고 했다.

그래서 처음에 시도했던것은 반복문안에서 dict를 하나씩 open함수를 사용해서 파일을 매번 열어서 append를 하였다.

그렇게해서 JSON형태처럼 만들었다고 생각했는데 json formatter페이지에 내가 만든형태를 긁어서 넣어보면 SyntaxError: Unexpected non-whitespace character after JSON at position 1303이 발생했다.

 

해결책 : 내가 만든 JSON 파일안의 형태는 {},{},{} 이런식으로 각각의 dict를 dump함수를 통해서  append type로 날렸기때문에 (write이 안되어서 append를 사용함) 각각의 {}들을 포괄해줄 수 있는 배열이나 {}가 없었다.

그래서 차라리 배열을 선언한다음 거기에 각각의 dict들을 배열로 넣어준다음 그 배열만 json.dump를 사용해서

with open('end.json', 'w', encoding='utf-8') as f:
        json.dump(json_data, f, ensure_ascii=False, indent=4)

이렇게 날렸다.

각각의 객체를 포괄해서 감싸주는게 필요한것이 핵심으로 보인다.

JSON에 대한 이해가 없었던 점에서 문제가 생겼던것 같다.

 

참고한 웹사이트 : https://stackoverflow.com/questions/12309269/how-do-i-write-json-data-to-a-file