Json To Csv LogoJson To Csv

JSON을 CSV로 로컬에서 변환하는 방법은? 6가지 방법 비교 (2026 가이드)

JSON을 CSV로 로컬에서 변환하는 정직한 방법은 6가지입니다. 클라이언트 측 변환기 페이지, 패키지 없는 Python, pandas를 사용하는 Python, jq 한 줄 명령어, Node 스크립트, 그리고 VS Code와 Excel에 이미 들어 있는 도구입니다. 이 방법들은 설치해야 할 것, 중첩 데이터가 살아남는지, 반복 작업이 깔끔하게 되는지에서 다릅니다. 이 가이드는 6가지 방법을 같은 파일로 검증하고 나란히 비교합니다.

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

한눈에 보는 6가지 방법

자세한 내용에 들어가기 전에 전체를 한 번에 살펴보겠습니다. 가장 빠르게 고르는 방법은 다섯 가지를 지우는 것이기 때문입니다. 방법 1인 클라이언트 측 변환기 페이지는 설치할 것이 없고 파일이 내 컴퓨터 안에 머물지만, 파일마다 클릭을 반복해야 합니다. 방법 2인 표준 라이브러리만 사용하는 Python은 Python 3만 필요하고, 평탄한 데이터를 완벽하게 처리하며, 중첩 값은 Python repr 텍스트로 남깁니다. 방법 3인 pandas를 사용하는 Python은 중첩 객체를 점 표기법 컬럼으로 자동 평탄화하지만, pandas 설치가 필요하고 목록에는 한 줄 수정이 여전히 필요합니다. 방법 4인 jq는 평탄한 데이터용 터미널 한 줄 명령어이며, 중첩 데이터에서는 잘못된 표를 만드는 대신 큰 소리로 실패합니다. 방법 5인 Node 스크립트는 중첩 객체를 평탄화하고 목록을 이어 붙이는 도우미를 전부 읽을 수 있게 제공하며, 프로젝트에 자연스럽게 들어갑니다. 방법 6인 VS Code나 Excel은 이미 그 도구를 쓰고 있다면 새로 설치할 것이 없고, 제어를 편의와 맞바꿉니다.

두 가지 질문을 던지면 대부분이 읽기 전에 지워집니다. 첫째, 데이터가 평탄한가요, 중첩되었나요? 객체마다 키가 한 단계만 있는 평탄한 데이터는 6가지 방법 모두에서 동작합니다. 객체 안에 객체가 있거나 객체 안에 목록이 있는 중첩 데이터는 평탄화를 추가하지 않는 한 평범한 jq 한 줄 명령어와 평범한 Python 표준 라이브러리 스크립트를 제외합니다. 둘째, 이 작업을 다시 할 것인가요? 일회성 변환은 페이지나 이미 가지고 있는 도구가 유리합니다. 매주 반복되는 내보내기는 스크립트가 유리합니다. 같은 명령어가 매번 같은 순서의 같은 컬럼을 만들기 때문입니다. 이 두 질문을 염두에 두면 가이드의 나머지는 찾아보는 표가 됩니다.

이 가이드의 모든 주장은 발행 전에 같은 샘플로 검증했습니다. 샘플은 주문 세 건이며, 각 주문에는 id, 이름과 도시가 들어 있는 중첩 customer 객체, tags 목록, total이 있습니다. 평탄한 데이터만 다루는 방법에는 같은 파일의 평탄한 버전을 사용했습니다. 어떤 방법이 중첩 데이터에서 실패하면 이 가이드는 그 사실을 밝히고 정확한 실패 모습을 보여 줍니다. 부드럽게 넘기지 않는 이유는, 눈에 보이는 실패가 눈에 보이지 않는 잘못된 표보다 안전하기 때문입니다.

방법 1: 클라이언트 측 변환기 페이지

가장 단순한 로컬 방법은 이 페이지에 있는 변환기이며, 웹사이트에 있어도 로컬로 셉니다. JSON을 붙여넣거나 파일을 올리면 페이지가 JSON을 파싱하고 평탄화한 뒤 브라우저 탭 안에서 CSV 텍스트를 만들고, 결과를 다운로드 파일로 건네줍니다. 업로드 단계가 없고 데이터를 기다리는 서버도 없습니다. 변환 코드가 페이지와 함께 오고 내 컴퓨터에서 실행되기 때문입니다. 네트워크에 닿는 유일한 버튼은 직접 입력한 웹 주소에서 JSON을 가져오는 선택적 URL 가져오기 버튼입니다. 가져오기 대신 붙여넣기나 업로드를 쓰면 네트워크는 전혀 사용되지 않습니다.

이 주장은 30초 안에 직접 확인할 수 있습니다. 변환기를 열고 네트워크 연결을 끊거나 비행기 모드를 켠 뒤 JSON을 붙여넣고 변환해 보세요. 그래도 동작합니다. 변환에 네트워크가 필요하지 않기 때문입니다. 이 검사는 한 번 해 볼 가치가 있습니다. 개인정보 보호 주장은 믿기보다 확인하는 것이 좋고, 이 주장은 검사를 통과합니다.

이 페이지는 일회성 파일, 아무것도 설치할 수 없는 컴퓨터, 스크립트를 만들기 전에 빠르게 변환해 보고 싶은 파일에 맞는 방법입니다. 한계도 다른 페이지와 같습니다. 파일마다 클릭을 반복해야 하고, 아주 큰 파일은 탭을 느리게 만듭니다. 또 컬럼 순서나 평탄화 동작 같은 일부 결정을 코드가 아니라 페이지 옵션으로 정합니다. 파일 한 개에는 이런 한계가 문제가 되지 않습니다. 매주 반복되는 내보내기에는 아래 스크립트 중 하나를 고르고, 페이지는 빠른 확인용으로 남겨 두세요.

방법 2: 표준 라이브러리만 사용하는 Python

Python은 대부분의 사람에게 가장 유용한 로컬 방법입니다. 대부분의 개발자 컴퓨터에 이미 설치되어 있고, 표준 라이브러리만으로 충분하기 때문입니다. pandas도, 패키지도, 다운로드할 것도 없습니다. 아래 스크립트는 객체 목록이 들어 있는 JSON 파일을 읽고, 첫 번째 객체에서 컬럼 이름을 가져온 뒤, 표준 csv 모듈로 CSV를 씁니다. csv 모듈이 따옴표 처리를 스스로 올바르게 해 줍니다. json2csv.py로 저장하고 python3 json2csv.py orders.json orders.csv 명령으로 실행하세요.

Python, standard library only
import json, csv, sys

with open(sys.argv[1]) as f:
    rows = json.load(f)

with open(sys.argv[2], 'w', newline='') as f:
    writer = csv.DictWriter(f, fieldnames=rows[0].keys())
    writer.writeheader()
    writer.writerows(rows)

세 건의 주문 샘플로 검증한 결과, 이 스크립트는 헤더 행과 데이터 행 세 개를 만들었고, 정직한 한계 하나가 그대로 드러났습니다. 중첩 customer 객체는 {'name': 'Ana', 'city': 'Lima'} 같은 Python repr 문자열로 나왔고, tags 목록은 ['new', 'vip'] 같은 repr 목록으로 나왔습니다. 평범한 DictWriter는 중첩 값을 평탄화하지 않으므로, 평탄한 데이터는 완벽하게 변환되고 중첩 데이터는 눈에 띄게 잘못 변환됩니다. 그래도 잘못된 모습을 쉽게 발견할 수 있다는 점은 다행입니다. 수정 방법은 중첩 객체를 쓰기 전에 customer.name과 customer.city 같은 점 표기법 키로 바꾸는 짧은 재귀 함수이며, 바로 방법 5의 Node 스크립트가 하는 일입니다.

csv 모듈은 여러분을 위해 실제 작업을 하고 있습니다. 구분자가 들어 있는 셀에 따옴표를 붙이고, 안쪽 따옴표를 두 배로 늘리며, 스프레드시트가 기대하는 줄 끝을 씁니다. 값을 쉼표로 직접 이어 붙여 CSV를 만들지 마세요. 직접 이어 붙이면 값 안의 첫 번째 쉼표에서 깨지고, 그 깨짐은 조용합니다. 파일은 컬럼이 밀리기 전까지 멀쩡해 보입니다. 표준 라이브러리 버전은 Python 3이 있는 모든 컴퓨터에서 똑같이 실행됩니다. 그래서 동료도 변환을 실행해야 할 때 이 방법이 제격입니다.

방법 3: pandas json_normalize를 사용하는 Python

방법 2가 정직한 최소값이라면, 방법 3은 대부분의 사람이 실제로 원하는 업그레이드입니다. pandas 함수 json_normalize는 중첩 객체를 받아 스스로 점 표기법 컬럼으로 바꾸므로, 직접 작성한 도우미 없이 customer가 customer.name과 customer.city가 됩니다. 아래 스크립트는 같은 주문 파일을 읽고 정규화한 뒤 CSV로 씁니다. pandas 설치가 한 번 필요하고, 그 뒤에는 전체 작업이 세 줄입니다.

Python with pandas json_normalize
import json, pandas as pd

with open('orders.json') as f:
    rows = json.load(f)

df = pd.json_normalize(rows)
df.to_csv('orders.csv', index=False)

같은 세 건의 주문 샘플로 검증한 결과, json_normalize는 id, tags, total, customer.name, customer.city 컬럼과 세 행을 만들었습니다. 기대할 동작은 이렇습니다. 중첩 객체는 평탄화되고, 평탄한 필드는 그대로 통과하며, 평탄화된 중첩 컬럼은 평탄한 컬럼 뒤에 옵니다. 목록은 남은 문제입니다. tags 목록은 방법 2와 마찬가지로 Python repr 텍스트로 나왔습니다. json_normalize는 목록이 무슨 뜻인지 추측하지 않기 때문입니다. 한 줄 수정 방법은 쓰기 전에 짧은 목록을 이어 붙이는 것입니다. 예를 들어 df['tags'] = df['tags'].apply(lambda v: '; '.join(v) if isinstance(v, list) else v) 코드는 목록을 읽기 쉬운 셀로 바꿉니다. 목록의 각 항목이 각각 행이 되어야 한다면 그것은 다른 연산인 펼치기이며, pandas에는 그 전용 explode 단계가 있습니다. 규칙은 단순합니다. 평탄화는 객체를 다루고, 이어 붙이기는 짧은 목록을 다루며, 펼치기는 행을 뜻하는 목록을 다룹니다.

pandas는 데이터가 중첩되었을 때, 쓰기 전에 정리하거나 필터링할 때, 이미 Python으로 작업할 때 맞는 방법입니다. 패키지 설치가 불가능할 때나, jq나 페이지가 더 빨리 끝낼 단일 평탄 파일에는 맞지 않습니다. 설치가 유일한 실제 비용이며, 두 번째 변환부터 그 비용이 회수됩니다.

방법 4: 평탄한 데이터용 jq 한 줄 명령어

이미 터미널을 쓴다면 jq는 전체 작업을 한 줄로 바꿉니다. 단, 평탄한 데이터에 한합니다. jq는 JSON을 읽고, 첫 번째 객체에서 키를 헤더로 뽑은 뒤, 모든 행을 CSV 줄로 내보내며, 따옴표 처리는 @csv 포맷터가 맡습니다. 스크립트 파일도, 반복문도, 수동 따옴표 처리도 없습니다. 아래 명령은 주문마다 id, city, total이 있는 평탄한 주문 파일을 읽고 orders.csv를 씁니다. 한계를 분명히 밝힙니다. @csv 포맷터는 중첩 객체와 목록을 거부하므로, 이 한 줄 명령어는 평탄한 내보내기 전용입니다. 앞 섹션의 중첩 샘플은 잘못된 표 대신 오류와 함께 실패하는데, 이는 안전한 종류의 실패입니다.

jq one-liner, flat objects
jq -r '(.[0] | keys_unsorted) as $keys | $keys, map([.[ $keys[] ]])[] | @csv' orders-flat.json > orders.csv

평탄한 세 건의 주문 파일로 검증한 결과, 출력은 따옴표로 감싼 헤더 행 "id","city","total"과, 문자열 셀은 따옴표로 감싸고 숫자는 그대로 둔 데이터 행 세 개였으며, 정확히 @csv가 만드는 모양이었습니다. keys_unsorted 세부 사항이 중요합니다. 평범한 keys를 쓰면 컬럼이 알파벳 순으로 정렬되어 파일의 컬럼 순서가 바뀝니다. 데이터에 중첩 객체가 있다면 jq는 먼저 평탄화 필터가 필요하고, 한 줄 명령어는 작은 스크립트로 커집니다. 평탄한 내보내기, 즉 포장을 풀면 대부분의 API 목록 응답이 이미 그렇게 되어 있는 경우에는 한 줄 명령어가 전체 작업이며, jq가 설치된 모든 컴퓨터에서 오프라인으로 실행됩니다.

주의할 점 하나는 jq가 전체 파일을 메모리에 읽는다는 것입니다. 그래서 수 기가바이트 내보내기는 브라우저 탭을 압박하듯 jq도 압박합니다. 수십 메가바이트까지의 일반적인 내보내기에는 즉시 동작합니다. 아주 큰 파일에는 먼저 파일을 나누거나 스트리밍 도구를 쓰고, 그것을 변환과는 별개의 문제로 다루세요.

방법 5: 변환이 프로젝트 안에 있을 때의 Node

Node는 변환이 일회성 작업이 아니라 프로젝트의 일부일 때 맞는 로컬 방법입니다. 빌드 단계, 데이터 파이프라인, 팀이 이미 실행하는 스크립트가 그 예입니다. Node에는 JSON 파싱이 기본으로 들어 있으므로, 남은 작업은 행을 CSV 텍스트로 바꾸는 것뿐입니다. 아래의 작은 스크립트는 점 표기법 평탄화 도우미를 사용해 중첩 객체를 점 표기법 컬럼으로 바꾸므로, 변환기 페이지와 같은 동작을 합니다. json2csv.mjs로 저장하고 node json2csv.mjs orders.json orders.csv 명령으로 실행하세요.

Node script with dot-flattening
import { readFileSync, writeFileSync } from 'node:fs';

const flatten = (obj, prefix = '', out = {}) => {
  for (const [k, v] of Object.entries(obj)) {
    const key = prefix ? prefix + '.' + k : k;
    if (v && typeof v === 'object' && !Array.isArray(v)) flatten(v, key, out);
    else out[key] = Array.isArray(v) ? v.join('; ') : v;
  }
  return out;
};

const rows = JSON.parse(readFileSync(process.argv[2], 'utf8')).map(r => flatten(r));
const cols = [...new Set(rows.flatMap(r => Object.keys(r)))];
const esc = v => v == null ? '' : /[",\n]/.test(String(v)) ? '"' + String(v).replaceAll('"', '""') + '"' : String(v);
const lines = [cols.join(','), ...rows.map(r => cols.map(c => esc(r[c])).join(','))];
writeFileSync(process.argv[3], lines.join('\n'));

같은 샘플로 검증한 결과, 스크립트는 헤더 id,customer.name,customer.city,tags,total과 세 행을 만들었습니다. 중첩 customer 객체는 두 컬럼으로 평탄화되었고, tags 목록은 세미콜론과 공백으로 이어졌습니다. 이스케이프 함수는 변환기 페이지와 같은 규칙을 따릅니다. 셀에 구분자나 따옴표나 줄 바꿈이 있을 때만 따옴표로 감싸고, 안쪽 따옴표는 두 배로 늘립니다. 이 규칙이 CSV 따옴표 처리의 전부이며, 이것을 제대로 하는 것이 깔끔하게 열리는 파일과 조용히 컬럼이 밀리는 파일의 차이입니다.

스크립트는 실행하기 전에 읽을 수 있도록 의도적으로 짧습니다. 모든 행의 컬럼 합집합을 취하므로, 필드가 빠진 행은 빈 셀이 되며, 이는 변환기 페이지와 같습니다. 거대한 파일용 스트리밍이나 컬럼 이름 바꾸기가 필요하다면, 그것은 이 스크립트를 대체하는 것이 아니라 추가하는 것입니다.

방법 6: 이미 가지고 있는 도구, VS Code와 Excel

새로 설치할 것이 필요 없는 로컬 방법이 두 가지 더 있습니다. 이미 그 도구를 쓰고 있다면 말입니다. VS Code에서는 확장 프로그램이 명령 팔레트에서 열린 JSON 파일을 CSV로 바꿉니다. 파일을 이미 편집하고 있을 때 가장 빠른 로컬 경로입니다. 어떤 확장 프로그램인지와 정확한 명령은 아래에 연결된 VS Code 가이드에 전부 나와 있습니다. Excel에서는 Power Query가 디스크에 있는 JSON 파일을 읽어 파일이 컴퓨터를 떠나지 않은 채 표로 바꿉니다. 데이터, 데이터 가져오기, 파일에서, JSON에서 순서로 들어가서 컬럼을 펼치고 불러오면 됩니다. 두 방법 모두 도구가 설치된 뒤에는 완전히 오프라인이며, 파일은 내내 내 컴퓨터 안에 있습니다.

이 방법들은 제어를 편의와 맞바꿉니다. VS Code와 Excel이 컬럼 처리를 대신 결정해 주며, 기본값은 평탄한 데이터에는 보통 괜찮고 중첩 데이터에는 가끔 놀랍습니다. 출력이 잘못 보이면 진단은 다른 모든 경우와 같습니다. 중첩 값이 평탄화되었는지 JSON 텍스트로 남았는지 확인하고, 열 때 구분자를 확인하세요. 한 번만 변환하는 파일에는 어느 방법이든 새로 설치하는 것보다 낫습니다. 매주 변환하는 파일에는 확장 프로그램 버전이나 매번 클릭해야 하는 대화 상자에 의존하지 않는, 내가 소유한 스크립트가 둘보다 낫습니다. 스크립트는 같은 명령으로 같은 결과를 내기 때문입니다.

방법 6에 대해 한 가지 더 정직한 말이 있습니다. Excel과 VS Code는 로컬이지만 최소 도구는 아닙니다. 자체 설정이 있는 큰 프로그램이며, 설정이 결과를 바꿀 수 있습니다. 예를 들어 쉼표 대신 세미콜론을 기대하는 로캘이 그렇습니다. 두 컴퓨터에서 출력이 다르면 데이터를 탓하기 전에 도구 설정을 확인하세요. 스크립트에는 이 문제가 없습니다. 스크립트 자체가 설정이기 때문입니다.

나란히 비교: 상황별 선택 방법

6가지 방법을 모두 검증했으니 선택은 짧은 결정 목록이 됩니다. 일회성 파일, 설치할 것 없음, 개인정보 보호 중요: 변환기 페이지입니다. 평탄한 파일, 터미널 생활, 한 번의 명령 원함: jq입니다. 평탄하거나 중첩된 파일, 이미 Python 사용, 반복 가능성: pandas를 사용하는 Python입니다. 패키지 허용 안 됨, 또는 동료도 실행해야 함: Python 표준 라이브러리에 중첩 데이터용 평탄화 도우미를 더한 방법입니다. 프로젝트나 빌드 단계 안의 변환: Node 스크립트입니다. 이미 파일 편집 중이거나 이미 스프레드시트 안: VS Code나 Excel입니다.

자주 나오는 두 상황에는 직접 답하겠습니다. 민감한 데이터, 파일이 컴퓨터 안에 머물러야 하는 경우: 이 페이지의 모든 방법이 자격이 있지만, 직접 읽은 짧은 스크립트가 가장 강한 선택입니다. 숨길 것이 없기 때문입니다. 민감한 데이터에 실행하기 전에 스크립트를 읽고, 원본 JSON을 보관하며, 파일을 업로드하는 도구보다 페이지나 스크립트를 선호하세요. 매주 반복되는 내보내기, 같은 모양이 계속 도착하는 경우: pandas를 사용하는 Python이나 Node 같은 스크립트입니다. 같은 명령이 매번 같은 컬럼을 만들고, 스크립트는 예약 실행할 수 있습니다.

그리고 이 페이지의 어떤 방법도 정답이 아닌 두 상황입니다. 여러 사람이 같은 설정으로 같은 변환을 필요로 하는 경우: 다섯 부의 스크립트가 따로 흘러가는 것보다 공유 페이지가 낫습니다. 메모리보다 큰 파일: 여기에 있는 모든 방법이 버거워하며, 해결책은 파일을 나누거나 행 단위로 스트리밍하는 것으로, 변환과는 다른 작업입니다. 이런 한계를 밝히는 것은 비교의 일부이지 빈틈이 아닙니다.

모든 방법이 잃는 것, 그리고 원본을 보관해야 하는 이유

이 페이지의 모든 방법은 같은 정보를 잃습니다. 손실이 도구가 아니라 포맷 변경 자체에 있기 때문입니다. 타입이 텍스트가 됩니다. 숫자, 참과 거짓 값, null이 모두 셀 안의 문자가 되며, 스프레드시트는 열 때 이를 다시 해석할 수 있습니다. 중첩 객체는 점 표기법 컬럼이나 이어 붙인 셀이 되고, 목록은 이어 붙인 텍스트나 추가 행이 되며, 선택한 방법에 따라 다릅니다. CSV만으로는 원래 트리로 돌아갈 방법이 없습니다. CSV는 어떤 컬럼이 중첩되었는지, 어떤 셀이 목록이었는지, 어떤 값이 숫자였는지 기록하지 않기 때문입니다.

그래서 로컬 변환의 첫 번째 규칙은 원본 JSON을 보관하는 것입니다. 원본을 덮어쓰며 제자리에서 변환하지 마세요. 출력 이름은 정렬되게 짓습니다. 예를 들어 orders-2026-10-26.csv처럼 짓고, JSON 옆에 두세요. CSV가 잘못 나오면 이미 정보를 잃은 파일을 디버깅하는 대신 JSON에서 다시 만드세요. 이 규칙은 비용이 들지 않고, 되돌릴 수 없는 단 하나의 실패를 막아 줍니다.

두 번째 규칙은 행을 세는 것입니다. CSV에는 JSON의 객체마다 헤더 행 하나와 데이터 행 하나가 있어야 합니다. 빠른 개수 세기는 가장 흔한 실패를 잡아냅니다. 바로 포장된 응답에서 행 찾기 도구가 잘못된 목록을 고르는 경우입니다. 개수가 맞지 않으면 도구를 목록 자체를 가리키게 하거나, 먼저 응답의 포장을 풀고 나서 행을 믿으세요.

6가지 방법 공통 문제 해결

같은 네 가지 문제가 모든 방법에서 나타나며, 각 문제마다 수정 방법이 하나씩 있습니다. 한 컬럼으로 열리는 경우는 데이터가 깨진 것이 아니라 여는 쪽의 구분자 불일치입니다. 다시 가져오고 파일이 쓰인 구분자를 고르세요. 셀에 읽을 수 없는 repr이나 JSON 텍스트로 중첩 데이터가 나타나는 경우는 평탄화를 건너뛴 것입니다. 평범한 Python 스크립트와 jq 한 줄 명령어는 평탄화하지 않으므로, pandas 버전이나 Node 스크립트, 또는 평탄화 토글을 켠 페이지를 쓰세요. 파일과 다른 순서의 컬럼은 도구가 키를 정렬했다는 뜻입니다. jq에는 keys_unsorted가 필요하고, Node 스크립트는 처음 본 순서를 유지합니다. 행이 통째로 빠지는 경우는 행 찾기 도구가 의도한 목록과 다른 목록을 고른 것으로, 포장된 API 응답에서 일어납니다. 변환기 페이지에는 행 감지 단계가 있고, 스크립트에는 목록을 명시적으로 넘겨야 합니다. 파일을 찾을 수 없다는 뜻은 터미널이 파일과 다른 폴더에 있다는 뜻입니다. 다른 것보다 먼저 경로를 확인하세요. 유효하지 않은 JSON은 보고된 위치 근처에서 원본 파일이 깨졌다는 뜻이며, 보통 따옴표 누락이나 뒤에 남은 쉼표입니다. 원본을 검증하고 수정하세요. 어떤 변환기도 깨진 입력을 추측해서는 안 됩니다.

관련 가이드

자주 묻는 질문

JSON을 CSV로 로컬에서 변환하는 방법은 무엇인가요?

6가지 방법입니다. 브라우저 탭에서 실행되는 클라이언트 측 변환기 페이지, 표준 라이브러리만 사용하는 Python 스크립트, pandas json_normalize를 사용하는 Python, 터미널용 jq 한 줄 명령어, 점 표기법 평탄화 도우미가 들어 있는 작은 Node 스크립트, 그리고 이미 가지고 있는 도구인 VS Code 확장 프로그램이나 Excel Power Query입니다. 6가지 방법 모두 파일을 내 컴퓨터 안에 둡니다.

일회성 파일에 가장 좋은 로컬 방법은 무엇인가요?

변환기 페이지입니다. JSON을 붙여넣거나 업로드하고, 탭 안에서 변환한 뒤 CSV를 다운로드하세요. 설치할 것이 없습니다. 네트워크 연결을 끊고 변환해 봐도 동작하는 것으로 로컬인지 검증할 수 있습니다. 변환이 브라우저 안에서 실행되기 때문입니다.

중첩 JSON을 가장 잘 다루는 로컬 방법은 무엇인가요?

pandas json_normalize를 사용하는 Python, 점 표기법 평탄화 도우미가 들어 있는 Node 스크립트, 또는 평탄화 토글을 켠 변환기 페이지입니다. 세 방법 모두 중첩 객체를 customer.name 같은 점 표기법 컬럼으로 바꿉니다. 평범한 Python 스크립트는 중첩 값을 repr 텍스트로 남기고, 평범한 jq 한 줄 명령어는 잘못된 표를 만드는 대신 중첩 데이터에서 실패합니다.

JSON을 CSV로 로컬에서 변환하려면 설치해야 하나요?

아니요. 변환기 페이지나 이미 가지고 있는 VS Code나 Excel 같은 도구를 쓰면 설치할 것이 없습니다. Python 3은 대부분의 개발자 컴퓨터에 이미 설치되어 있고, 표준 라이브러리만으로 평탄한 데이터를 다룹니다. pandas, jq, Node는 각각 한 번 설치하면 되며, 설치 뒤에는 완전히 오프라인으로 실행됩니다.

로컬 CSV가 한 컬럼으로 열리는 이유는 무엇인가요?

데이터가 깨진 것이 아니라 여는 쪽의 구분자 불일치입니다. 스프레드시트가 파일이 쓰인 구분자와 다른 구분자로 파일을 나누었습니다. 파일을 다시 가져오고 맞는 구분자를 고르면 컬럼이 나타납니다.

CSV에서 중첩 값이 이상한 텍스트로 나타나는 이유는 무엇인가요?

평탄화를 건너뛰었기 때문입니다. 평범한 Python 표준 라이브러리 스크립트는 중첩 객체를 Python repr 텍스트로 쓰고, pandas는 목록을 이어 붙이지 않으면 repr 텍스트로 남깁니다. 객체에는 pandas json_normalize를 쓰고 짧은 목록에는 이어 붙이기를 쓰거나, Node 스크립트나 평탄화를 켠 변환기 페이지를 쓰세요.

로컬에서 변환하면 정보가 손실되나요?

네, 어떤 변환이든 같은 정보를 잃습니다. 값은 보존되지만 타입은 텍스트가 되고, 중첩 객체는 점 표기법 컬럼이 되며, 목록은 이어 붙인 셀이나 추가 행이 됩니다. CSV만으로는 원래 트리로 돌아갈 방법이 없으므로, 항상 원본 JSON 파일을 보관하세요.

방법을 고르고 지금 변환하세요

가장 빠른 로컬 방법부터 시작하세요. 어떤 JSON이든 이 페이지의 변환기에 붙여넣으면 브라우저 탭 안에서 변환되는 것을 볼 수 있습니다. 업로드도, 가입도 없고, 내 컴퓨터를 떠나는 것이 없습니다. 또는 Python, jq, Node 버전을 복사해 내 파일에 직접 실행하세요.

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