Json To Csv LogoJson To Csv

CSV를 JSON으로 변환하는 방법: 검증된 3가지 방법 (2026 가이드)

CSV 행을 깔끔한 JSON으로 바꾸는 검증된 3가지 방법: 무료 온라인 변환기, 짧은 Python 스크립트, 엑셀을 거치는 방법.

업데이트: 2026-10-027 분 소요

CSV→JSON 변환에서 실제로 일어나는 일

CSV는 평평한 형식입니다. 구분자로 나뉜 값들의 행이 이어지고, 보통 첫 행이 열 헤더입니다. JSON은 구조화된 형식으로, 이름 있는 키를 가진 객체들이 배열로 묶여 있습니다. 변환은 각 데이터 행을 하나의 객체에, 각 헤더를 하나의 키에 대응시킵니다.

미묘한 부분은 데이터 타입입니다. CSV의 각 셀은 기술적으로 모두 텍스트지만, JSON에는 진짜 숫자·불리언·null이 있습니다. 좋은 변환기는 타입을 추론합니다. 30은 숫자로, true는 불리언으로, 빈 셀은 null이 됩니다. ID나 우편번호를 텍스트로 유지하는 것은 의도적인 설계입니다. 01310이 1310이 되면 곤란하니까요.

방법 1: 무료 온라인 변환기 (가장 빠름)

한 번만 변환한다면 온라인 도구가 가장 빠릅니다. 설치도 코드도 필요 없습니다. 브라우저 안에서 처리되는 것을 고르면 데이터가 기기를 벗어나지 않습니다.

  • CSV를 붙여넣거나 .csv 파일을 변환기에 드롭합니다.
  • 구분자를 확인합니다. 대부분의 파일은 쉼표, 사용 중인 스프레드시트에 맞춥니다.
  • JSON 미리보기를 확인합니다. 헤더가 키가 되고 각 행이 하나의 객체가 되었다면 .json 파일을 다운로드합니다.

방법 2: Python 스크립트 (반복 가능)

개발자나 정기 작업에는 pandas를 사용한 짧은 Python 스크립트가 가장 재현성 높은 방법입니다. 헤더 행을 자동으로 읽고 깔끔하게 들여쓴 JSON 배열을 씁니다.

Python
import pandas as pd

# The header row becomes the keys automatically
df = pd.read_csv("data.csv")

# orient="records" -> one JSON object per row
# force_ascii=False keeps accents readable (no \uXXXX escapes)
df.to_json("data.json", orient="records", indent=2, force_ascii=False)

python convert.py 로 실행합니다. 텍스트로 유지해야 하는 열(ID, 앞자리 0이 있는 우편번호 등)이 있다면 명시적으로 지정합니다: pd.read_csv("data.csv", dtype={"zip": str}).

방법 3: 엑셀·구글 시트

솔직히 말하면, 엑셀과 구글 시트에는 JSON으로 직접 저장하는 기능이 없습니다. 실용적인 절차는 두 단계입니다.

  • 스프레드시트에서 데이터를 정리한 뒤 CSV(UTF-8)로 저장·다운로드합니다.
  • 그 CSV를 온라인 변환기나 Python 스크립트로 JSON으로 변환합니다.
  • 팁: CSV를 내보내기 전에 Power Query(데이터 → 테이블에서)로 헤더를 고치고 빈 행을 제거하세요.

헤더·구분자·데이터 타입

출력의 품질을 결정하는 것은 세 가지입니다. 첫째, 헤더 행입니다. 반드시 존재하고 중복이 없어야 합니다. 중복되거나 없으면 키가 깨집니다. 둘째, 구분자입니다. 유럽의 스프레드시트는 소수점에 쉼표를 쓰는 지역이 많아 세미콜론으로 내보내는 경우가 흔합니다. 행이 어긋나 보이면 구분자가 잘못된 것입니다. 셋째, 따옴표입니다. 필드 안의 쉼표나 따옴표는 큰따옴표로 감싸야 합니다(RFC 4180). 제대로 된 CSV는 항상 그렇게 되어 있고, 변환기도 그것을 전제로 합니다.

날짜는 고전적인 함정입니다. 03/04/2026은 미국에서는 3월 4일, 유럽 대부분에서는 4월 3일을 뜻합니다. 날짜가 중요하다면 변환 전에 ISO 형식(2026-04-03)으로 정규화하세요.

자주 발생하는 문제와 빠른 해결법

변환 문제의 대부분은 네 가지로 정리됩니다.

  • 문자가 깨짐: 파일이 UTF-8이 아닙니다. 변환 전에 UTF-8(BOM 포함)로 다시 저장하세요.
  • 전부 문자열로 나옴: 타입 추론이 꺼져 있거나 값이 따옴표로 묶여 있었습니다. ‘타입 추론’ 옵션을 켜거나, 문자열 그대로 받아들이세요. API는 대개 문제없이 처리합니다.
  • 행이 어긋나 보임: 구분자가 잘못되었거나 따옴표 없는 필드 안에 줄바꿈이 있습니다. CSV를 올바르게 다시 내보내고 재시도하세요.
  • 거대한 파일에 브라우저가 멈춤: CSV를 작게 나누거나 위의 Python 방식을 사용하세요.

반대 방향: JSON에서 CSV로

API는 JSON을 주고 스프레드시트는 CSV를 원합니다. 반대 방향 변환도 흔합니다. 자매 가이드에서는 같은 세 가지 방법을 역방향으로 설명합니다.

읽기: JSON을 CSV로 변환하는 방법

관련 가이드

자주 묻는 질문

온라인에서 CSV를 JSON으로 변환해도 안전한가요?

브라우저 안에서 완전히 처리되는 변환기라면 안전합니다. 파일은 기기 안에서 로컬로 처리되며 서버에 업로드되지 않습니다. 알 수 없는 서버에 민감한 데이터 업로드를 요구하는 도구는 피하세요.

엑셀에서 CSV를 바로 JSON으로 변환할 수 있나요?

아니요. 엑셀에는 JSON 내보내기 기능이 없습니다. 시트를 CSV(UTF-8)로 저장·다운로드한 뒤 온라인 도구나 짧은 Python 스크립트로 변환하세요. 구글 시트도 마찬가지입니다.

숫자가 JSON에서 문자열이 된 이유는 뭔가요?

CSV의 각 셀은 무언가가 판단하기 전까지는 모두 텍스트이기 때문입니다. 타입 추론 기능이 있는 변환기는 30을 숫자로, true를 불리언으로 바꿉니다. 따옴표로 묶인 값과 ID 계열 열은 우편번호의 앞자리 0을 지키기 위해 의도적으로 문자열로 둡니다.

JSON을 다시 CSV로 변환할 수 있나요?

네. ‘JSON을 CSV로 변환하는 방법’ 단계별 가이드를 보세요. 같은 세 가지 방법(온라인 변환기, 엑셀, Python)이 반대 방향에도 그대로 적용됩니다.

가입 없이 CSV를 JSON으로 무료 변환하는 방법이 있나요?

네. 브라우저 기반 변환기는 계정 없이 무료입니다. CSV를 붙여넣고 JSON 배열을 다운로드하세요. 반복 작업에는 이 가이드의 짧은 Python 스크립트가 오프라인에서 제한 없이 실행됩니다.

JSON으로 변환할 때 Excel이 앞자리 0을 지우는 것을 막으려면?

CSV를 저장하기 전에 ID나 우편번호 열을 텍스트로 지정하세요. Excel에서는 데이터 → 텍스트/CSV에서 열 형식을 텍스트로 고정하거나, Python에서는 dtype={"zip": str} 로 읽으면 됩니다. CSV에서 0이 사라진 뒤에는 어떤 변환기로도 복원할 수 없습니다.

세미콜론을 사용하는 CSV를 JSON으로 변환할 수 있나요?

네. 변환기에 구분자가 쉼표가 아닌 세미콜론이라고 지정하세요. 유럽 스프레드시트는 기본적으로 이렇게 내보냅니다. Python 방식은 pd.read_csv("data.csv", sep=";") 로 처리합니다.

반대 방향 변환이 필요하신가요?

무료 변환기가 JSON을 몇 초 만에 스프레드시트용 CSV로 바꿔줍니다. 반대 방향도 동일한 프라이버시로: 가입 불필요, 업로드 없음.

JSON→CSV 변환기 열기
모든 가이드