CSV to JSON 변환 방법 총정리 - 온라인 도구부터 파이썬, 엑셀까지 상황별 가이드
설치 없이 10초 만에 끝내는 온라인 변환 도구부터 파이썬 pandas, 엑셀 파워 쿼리까지 CSV 파일을 JSON으로 바꾸는 모든 방법과 한글 깨짐 해결법을 한 번에 정리했습니다.
![]()
엑셀에서 내려받은 CSV 파일을 웹 API나 자바스크립트 코드에 넣으려는 순간 막막해진 경험, 한 번쯤 있으실 겁니다. 데이터는 분명 눈앞에 있는데 형식이 맞지 않아 한 줄씩 손으로 고치고 있다면 그 시간이 아깝습니다. CSV to JSON 변환은 방법만 알면 10초 안에 끝나는 작업입니다. 상황별로 가장 빠른 방법을 정리했습니다.
CSV와 JSON, 왜 변환이 필요할까
CSV는 쉼표로 값을 구분하는 표 형태의 텍스트 파일입니다. 엑셀, 구글 스프레드시트, 각종 통계 프로그램에서 내보내기 형식으로 널리 쓰입니다. 반면 JSON은 키와 값의 쌍으로 이루어진 구조화된 형식으로, 사실상 모든 웹 API의 표준 데이터 형식입니다.
두 형식은 쓰임새가 다르기 때문에 실무에서는 변환이 자주 필요합니다. 대표적인 상황은 다음과 같습니다.
- 엑셀로 정리한 데이터를 웹 서비스나 앱에 불러올 때
- 데이터베이스에 대량의 초기 데이터를 넣을 때
- 자바스크립트 차트 라이브러리에 표 데이터를 전달할 때
- API 테스트용 샘플 데이터를 만들 때
CSV는 사람이 정리하기 좋은 형식이고, JSON은 프로그램이 읽기 좋은 형식입니다. 변환의 핵심은 CSV의 첫 줄(헤더)이 JSON의 키가 된다는 점 하나만 이해하면 됩니다.
설치 없이 끝내는 온라인 변환 도구
한 번만 변환하면 되는 상황이라면 온라인 도구가 가장 빠릅니다. 검색창에 CSV to JSON을 입력하면 csvjson.com, convertcsv.com 같은 무료 변환 사이트가 여러 개 나옵니다. 사용법은 대부분 동일합니다.
- 1단계: CSV 파일을 업로드하거나 내용을 붙여넣기
- 2단계: 변환 옵션 선택 (배열 형태, 중첩 구조 등)
- 3단계: 결과 JSON을 복사하거나 파일로 다운로드
파이썬과 자바스크립트로 변환하기
매일 반복되는 작업이거나 파일 용량이 크다면 코드로 처리하는 것이 훨씬 효율적입니다.
파이썬 pandas 한 줄 변환
pandas 라이브러리를 사용하면 한 줄로 끝납니다.
import pandas as pd
pd.read_csv("data.csv").to_json("data.json", orient="records", force_ascii=False)
orient="records" 옵션은 각 행을 하나의 객체로 만들어 배열에 담는 방식으로, 실무에서 가장 많이 쓰이는 구조입니다. force_ascii=False를 빼먹으면 한글이 유니코드 코드로 깨져 보이니 반드시 넣어야 합니다.
자바스크립트 Papa Parse
웹 브라우저 환경이라면 Papa Parse 라이브러리가 표준처럼 쓰입니다. Papa.parse(file, { header: true }) 한 번이면 CSV가 객체 배열로 바뀝니다. 쉼표가 포함된 셀, 따옴표 처리 같은 예외 상황을 알아서 처리해 주기 때문에 직접 split 함수로 파싱하는 것보다 훨씬 안정적입니다.
변환한 JSON을 API로 주고받다 보면 인증 헤더나 데이터 전송 과정에서 Base64 인코딩이 필요한 경우가 종종 생깁니다. 이럴 때는 Base64 인코더 같은 웹 도구로 결과를 바로 확인하면서 작업하면 디버깅 시간이 줄어듭니다.
엑셀과 구글 스프레드시트 활용법
코드가 부담스럽다면 이미 쓰고 있는 스프레드시트 도구로도 가능합니다.
엑셀 파워 쿼리: 데이터 탭에서 파워 쿼리로 CSV를 불러온 뒤 M 수식으로 JSON 텍스트를 생성할 수 있습니다. 다만 설정이 다소 복잡해서 일회성 작업에는 권하지 않습니다.
구글 스프레드시트 + Apps Script: 확장 프로그램 메뉴의 Apps Script에서 10줄 정도의 스크립트로 시트 데이터를 JSON으로 내보낼 수 있습니다. 시트를 수정하면 자동으로 JSON이 갱신되는 구조를 만들 수 있어서, 비개발자와 협업하면서 데이터를 주기적으로 받아야 할 때 특히 유용합니다.
변환할 때 자주 발생하는 문제 5가지
변환 자체는 쉽지만 결과물이 깨지는 경우가 의외로 많습니다. 아래 다섯 가지가 대부분의 원인입니다.
- 한글 깨짐: 국내 엑셀이 저장하는 CSV는 EUC-KR 인코딩인 경우가 많습니다. 변환 전에 메모장에서 UTF-8로 다시 저장하거나, 파이썬에서
encoding="cp949"옵션을 지정하세요. - 쉼표가 포함된 셀: 주소나 설명 칸에 쉼표가 있으면 열이 밀립니다. 따옴표 처리가 되어 있는지 확인해야 합니다.
- 앞자리 0 사라짐: 전화번호, 우편번호가 숫자로 인식되면 010이 10으로 바뀝니다. 해당 열을 문자열로 지정하세요.
- 셀 안의 줄바꿈: 한 셀에 여러 줄이 들어 있으면 행이 쪼개질 수 있습니다.
- 빈 헤더: 첫 줄에 빈 칸이 있으면 이름 없는 키가 생성됩니다. 변환 전 헤더를 정리하세요.
상황별 추천 방법 정리
지금까지 살펴본 방법을 상황별로 정리하면 다음과 같습니다.
| 상황 | 추천 방법 | 이유 |
|---|---|---|
| 일회성 소량 변환 | 온라인 변환 도구 | 설치 없이 10초면 완료 |
| 민감한 데이터 | 파이썬 pandas | 내 PC 안에서만 처리 |
| 매일 반복되는 작업 | 파이썬 스크립트 저장 | 자동화 가능, 재사용 편리 |
| 웹 서비스 내 실시간 변환 | Papa Parse | 브라우저에서 바로 동작 |
| 비개발자와 협업 | 구글 시트 + Apps Script | 시트 수정만으로 JSON 갱신 |
가장 먼저 할 일은 간단합니다. 지금 가지고 있는 CSV 파일 하나를 온라인 도구에 넣어 구조가 어떻게 바뀌는지 직접 확인해 보세요. 그리고 이 작업이 주 1회 이상 반복된다면 위의 pandas 한 줄 스크립트를 파일로 저장해 두시기 바랍니다. 다음부터는 더블클릭 한 번으로 변환이 끝납니다.