Json To Csv LogoJson To Csv

JSON을 CSV로 로컬에서 변환하는 방법: 파일을 내 컴퓨터 안에 두는 법 (2026 가이드)

JSON을 CSV로 로컬에서 변환한다는 것은 변환이 내 컴퓨터에서 실행되고 파일이 컴퓨터를 떠날 필요가 없다는 뜻입니다. 브라우저 탭 안에서 전적으로 실행되는 변환기 페이지일 수도 있고, Python 스크립트, jq 한 줄 명령어, 작은 Node 스크립트일 수도 있습니다. 이 가이드는 각 방법을 실제 파일로 검증하고, 로컬이 맞는 경우와 맞지 않는 경우를 설명하며, 결과를 믿기 전에 확인하는 방법을 보여 줍니다.

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

JSON을 CSV로 로컬에서 변환한다는 것은 정확히 무슨 뜻인가?

로컬이라는 단어는 세 가지 다른 뜻으로 쓰이며, 개인정보 보호가 이유라면 그 차이는 중요합니다. 첫째는 클라이언트 측입니다. 브라우저 탭 안에서 변환을 수행하는 웹 페이지로, 웹사이트를 보고 있기는 하지만 데이터는 어디로도 전송되지 않습니다. 변환 코드가 내 컴퓨터에서 실행되기 때문입니다. 둘째는 설치형 소프트웨어입니다. 데스크톱 앱이나 에디터 확장 프로그램처럼, 컴퓨터에 설치된 프로그램이 파일을 읽어 파일을 씁니다. 셋째는 직접 실행하는 스크립트입니다. Python, jq, Node로 쓴 몇 줄짜리 코드로, 실행 전에 전부 읽어 볼 수 있고 완전히 내 통제 아래에 있습니다.

세 방법 모두 파일을 컴퓨터 안에 둡니다. 차이는 설치해야 할 것, 배워야 할 것, 결과를 반복할 수 있는지입니다. 클라이언트 측 페이지는 설치도 학습도 필요 없지만, 매번 클릭을 반복해야 합니다. 스크립트는 도구 설치와 몇 줄 입력이 필요하지만, 한 번의 명령으로 수백 개 파일을 같은 결과로 처리합니다. 이 가이드에서는 세 가지를 모두 로컬로 취급하고, 방법마다 어느 종류인지 밝힙니다.

로컬이 마법처럼 개인정보를 지켜 주는 것은 아닙니다. 모르는 사람이 올린 스크립트를 읽지 않고 민감한 데이터에 실행하면, 그 스크립트는 컴퓨터 안에서 무엇이든 할 수 있고 파일을 외부로 보낼 수도 있습니다. 이 가이드의 스크립트는 전부 읽을 수 있을 만큼 짧습니다. 민감한 데이터에는 어떤 스크립트든 실행 전에 읽어 보세요. 로컬은 작업이 일어나는 장소의 속성이고, 라벨을 믿는 것이 아니라 코드를 읽거나 네트워크를 관찰해서 검증하는 것입니다.

로컬 변환이 맞는 경우, 맞지 않는 경우

로컬 변환이 맞는 경우는 네 가지입니다. 첫째는 민감한 데이터입니다. 고객 목록, 내부 기록, 데이터가 회사 안에 머물러야 한다는 계약이나 개인정보 규칙 아래에 있는 자료는 서버형 변환기의 대상이 될 수 없습니다. 파일이 컴퓨터를 떠날 수 없다면, 아무리 편해도 서버 업로드는 선택지가 아닙니다. 둘째는 연결이 없을 때입니다. 비행기 안, 외딴 현장, 원하는 도구를 차단하는 네트워크에서도 로컬 도구는 똑같이 동작합니다. 닿아야 할 서버가 없기 때문입니다. 셋째는 반복성입니다. 매주 같은 종류의 내보내기 파일을 변환한다면, 스크립트는 15분짜리 클릭 작업을 하나의 명령으로 바꾸고, 매번 같은 열을 같은 순서로 내놓습니다. 넷째는 크기와 통제입니다. 수백만 행짜리 파일이나 열 이름을 바꾸고 순서를 재배열해야 하는 파일은, 선택지가 고정된 페이지보다 조정 가능한 스크립트로 다루는 편이 쉽습니다.

로컬이 틀린 경우도 세 가지입니다. 여러 사람이 같은 변환과 같은 설정을 써야 한다면, 따로 노는 다섯 개의 스크립트보다 공유 페이지가 일관성을 지킵니다. 내가 통제하는 컴퓨터가 없다면, 예를 들어 빌린 컴퓨터나 Python이나 jq를 설치할 수 없는 잠긴 업무용 노트북이라면, 클라이언트 측 페이지가 여전히 로컬 방식이고 더 나은 선택입니다. 파일이 컴퓨터 메모리에 편안히 들어가기보다 크다면, 어떤 로컬 방법도 파일을 나누거나 스트리밍으로 처리하기 전에는 도움이 되지 않으며, 그것은 별개의 작업입니다. 선택 전에 한 가지 질문을 하세요. 이 파일이 이 컴퓨터에 머물러야 하는가, 그리고 이 작업을 반복할 것인가. 두 답이 모두 예라면 로컬로 가서 스크립트로 만드세요. 첫 번째만 예라면 클라이언트 측 페이지로 충분합니다.

방법 1: 이 페이지의 변환기는 이미 로컬 방식이다

가장 간단한 로컬 방법은 이미 눈앞에 있습니다. 이 페이지의 변환기는 전적으로 브라우저 탭 안에서 실행됩니다. JSON을 붙여 넣거나 파일을 업로드하면, 페이지가 JSON을 파싱하고, 평탄화하고, CSV 텍스트를 브라우저 안에서 만든 뒤, 결과를 다운로드 파일로 건넵니다. 업로드 단계도, 데이터를 기다리는 서버도 없습니다. 변환 코드가 페이지와 함께 제공되어 내 컴퓨터에서 실행되기 때문입니다.

이 주장은 30초 안에 직접 검증할 수 있고, 개인정보에 관한 주장인 만큼 검증해야 합니다. 변환기를 열고 네트워크를 끊거나 비행기 모드를 켠 뒤 JSON을 붙여 넣어 변환해 보세요. 여전히 동작합니다. 변환에 네트워크가 필요 없기 때문입니다. 페이지에서 네트워크에 닿는 버튼은 하나뿐으로, 입력한 웹 주소에서 JSON을 가져오는 선택적 URL 가져오기 버튼입니다. 가져오기 대신 붙여 넣거나 업로드하면 네트워크는 전혀 사용되지 않습니다.

그래서 이 페이지는 한 번만 변환하는 경우와 아무것도 설치할 수 없는 컴퓨터에 맞는 로컬 방법입니다. 한계는 모든 페이지와 같습니다. 파일마다 클릭을 반복해야 하고, 매우 큰 파일은 탭을 느리게 만듭니다. 파일 하나, 혹은 한 번만 변환하는 파일이라면 그 한계는 문제가 되지 않습니다. 매주 반복되는 내보내기 파일이라면 아래 스크립트로 넘어가고, 페이지는 빠른 확인용으로 남겨 두세요.

방법 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)

이 가이드 전체에서 쓴 샘플 파일, id와 customer와 tags 필드를 가진 주문 세 건으로 검증했을 때, 이 스크립트는 헤더 행 하나와 데이터 행 세 개를 만들었습니다. 중첩된 customer 객체는 JSON 텍스트가 아니라 Python 표현식 문자열로 나왔고, tags 목록도 표현식 목록으로 나왔습니다. 평범한 DictWriter는 중첩 값을 평탄화하지 않기 때문입니다. 짧은 버전의 정직한 한계입니다. 평탄한 데이터는 완벽하게 변환되고, 중첩 데이터는 한 단계가 더 필요합니다. 평탄화 단계는 작습니다. 중첩 객체를 customer.name과 customer.city 같은 점 표기법 키로 바꾸는 짧은 재귀 함수를 쓰기 전에 적용하면, 변환기 페이지에서 평탄화 토글을 켠 것과 같은 열을 얻습니다.

csv 모듈은 여기서 실제 작업을 하고 있습니다. 구분자를 포함한 셀을 인용 부호로 감싸고, 안쪽 인용 부호를 두 배로 늘리고, 스프레드시트가 기대하는 줄바꿈을 씁니다. 값을 쉼표로 직접 이어 붙여 CSV를 만들지 마세요. 손으로 이어 붙인 방식은 값 안의 첫 번째 쉼표에서 깨지며, 그 깨짐은 조용합니다. 파일은 멀쩡해 보이다가 열이 밀립니다. 표준 라이브러리 버전은 Python 3가 있는 모든 컴퓨터에서 똑같이 실행되므로, 동료도 같은 변환을 실행해야 할 때 손이 가는 방법입니다.

방법 3: jq, 터미널에 사는 사람을 위한 한 줄 명령어

터미널을 이미 쓴다면, jq는 평탄한 데이터의 작업 전체를 한 줄로 바꿉니다. JSON을 읽고, 첫 번째 객체의 키를 헤더로 삼은 뒤, 모든 행을 CSV 줄로 내보내며, 인용 부호 처리는 jq의 @csv 포맷터가 맡습니다. 스크립트 파일도, 반복문도, 손으로 하는 인용 부호 처리도 필요 없습니다. 아래 명령은 주문마다 id와 city와 total이 있는 평탄한 주문 파일을 읽어 orders.csv를 씁니다. 한계도 분명히 밝힙니다. @csv 포맷터는 중첩 객체와 목록을 거부하므로, 이 한 줄 명령어는 평탄한 내보내기 전용입니다. Python 절의 중첩 샘플에 적용하면 틀린 표가 아니라 오류가 나옵니다. 안전한 종류의 실패입니다.

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도 압박합니다. 수십 메가바이트까지의 일반적인 내보내기에는 즉시 처리됩니다. 매우 큰 파일이라면 먼저 파일을 나누거나 스트리밍 도구를 쓰고, 그것은 변환과 별개의 문제로 다루세요.

방법 4: 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,total 헤더와 세 행을 만들었고, 중첩된 customer 객체는 두 열로 평탄화되고 tags 목록은 세미콜론과 공백으로 이어졌습니다. 이스케이프 함수는 변환기 페이지와 같은 규칙을 따릅니다. 구분자나 인용 부호나 줄바꿈을 포함한 셀만 인용 부호로 감싸고, 안쪽 인용 부호는 두 배로 늘립니다. 이 규칙이 CSV 인용 부호 처리의 전부이며, 올바르게 지키는 것이 파일이 깨끗하게 열리는 것과 열이 조용히 밀리는 것의 차이입니다.

스크립트는 실행 전에 읽을 수 있도록 일부러 짧게 만들었습니다. 모든 행에 걸쳐 열의 합집합을 취하므로, 필드가 빠진 행은 빈 셀을 얻으며, 이는 변환기 페이지와 같습니다. 큰 파일용 스트리밍이나 열 이름 변경이 필요하다면, 이 스크립트를 대체하는 것이 아니라 추가하는 형태로 넣으세요.

방법 5: 이미 갖고 있는 도구, VS Code와 오프라인 Excel

이미 쓰는 도구라면 새로 설치하지 않아도 되는 로컬 방법이 두 가지 더 있습니다. VS Code에서는 확장 프로그램이 명령 팔레트에서 열린 JSON 파일을 CSV로 바꿔 주며, 이미 파일을 편집하고 있을 때 가장 빠른 로컬 경로입니다. 어느 확장 프로그램인지와 정확한 명령은 아래에 연결된 VS Code 가이드에 자세히 나와 있습니다. Excel에서는 Power Query가 디스크의 JSON 파일을 읽어 표로 바꾸며, 파일이 컴퓨터를 떠나는 일은 없습니다. 데이터, 데이터 가져오기, 파일에서, JSON에서 순서로 들어가 열을 펼친 뒤 로드하면 됩니다. 두 방법 모두 도구가 설치된 뒤에는 완전히 오프라인으로 동작합니다.

이 방법들은 통제와 편의성을 맞바꿉니다. VS Code와 Excel이 열 처리를 대신 결정하며, 기본값은 평탄한 데이터에는 대개 괜찮고 중첩 데이터에는 가끔 뜻밖의 결과를 냅니다. 출력이 이상해 보인다면 다른 모든 곳과 같은 진단법을 쓰세요. 중첩 값이 평탄화되었는지, 아니면 JSON 텍스트로 남았는지 확인하고, 열 때 구분자를 확인하세요. 한 번만 변환하는 파일이라면 어느 방법이든 새로 설치하는 것보다 낫습니다. 매주 변환하는 파일이라면 내가 소유한 스크립트가 두 방법보다 낫습니다.

로컬만으로는 부족할 때, 그리고 그다음에 할 일

로컬 변환에는 세 가지 실제 한계가 있으며, 이름을 붙여 두면 맞지 않는 곳에 로컬 방법을 억지로 끼우지 않게 됩니다. 첫째는 협업입니다. 다섯 사람이 같은 변환과 같은 설정을 써야 한다면 다섯 개의 스크립트는 따로 놀고, 공유 페이지는 일관성을 유지합니다. 둘째는 컴퓨터 접근입니다. 빌리거나 잠긴 컴퓨터에서는 Python, jq, Node를 설치하지 못할 수 있고, 그때는 클라이언트 측 페이지가 여전히 로컬 방법입니다. 셋째는 규모입니다. 메모리보다 큰 파일은 여기서 다룬 모든 방법에 부담을 주며, 해결책은 파일을 나누거나 행 단위로 스트리밍하는 것이지 다른 변환기가 아닙니다.

사람들이 잊는 한계도 있습니다. 로컬 변환은 나쁜 데이터를 고쳐 주지 않습니다. 스크립트는 파일에 들어 있는 그대로, 빠진 필드와 섞인 타입과 일관되지 않은 형태까지 변환합니다. 같은 내보내기에서 어떤 때는 필드가 있고 어떤 때는 없다면, 이 가이드의 모든 방법은 빈칸이 있는 열의 합집합을 내놓습니다. 정직한 동작이지만 스프레드시트가 기대하는 형태와 다를 수 있습니다. 가능하면 원본 내보내기를 고치고, 불가능하면 빈칸을 문서로 남기세요.

로컬 파일 위생: CSV를 믿기 전에 하는 네 가지 확인

로컬 변환은 출력이 검증될 때만 끝납니다. 검증은 1분도 걸리지 않습니다. 첫째, 원본 JSON을 보관하세요. 원본을 덮어쓰면서 제자리에서 변환하지 마세요. 변환은 정보를 잃습니다. 타입은 텍스트가 되고, 중첩 구조는 열 이름이 되며, CSV만으로는 원래 트리로 돌아갈 방법이 없습니다. 둘째, 출력 이름은 정렬되게 지으세요. orders-2026-10-25.csv는 output-final-v2.csv보다 낫고, 날짜가 어느 내보내기에서 왔는지 알려 줍니다.

셋째, 행 수를 세세요. CSV는 헤더 행 하나에 JSON 객체 하나당 데이터 행 하나여야 하며, 빠른 개수 세기가 가장 흔한 실패, 즉 행 탐색기가 감싼 응답에서 잘못된 목록을 고른 경우를 잡아냅니다. 넷째, 올바른 구분자로 CSV를 여세요. 한 열로 열리는 파일은 거의 대부분 깨진 데이터가 아니라, 파일과 스프레드시트 사이의 구분자 불일치입니다. 맞는 구분자로 다시 가져오면 해결됩니다. 변환기 페이지, Python csv 모듈, jq, 위 Node 스크립트는 모두 활성 구분자에 맞춰 인용 부호를 처리하므로, 한 열로 열리는 것은 변환 문제가 아니라 여는 쪽의 문제입니다.

로컬 변환 문제 해결

같은 네 가지 문제가 모든 로컬 방법에서 반복되며, 각각 해결책이 하나씩 있습니다. 파일을 찾을 수 없음은 터미널이 파일과 다른 폴더에 있다는 뜻이니, 다른 것보다 먼저 경로를 확인하세요. 유효하지 않은 JSON은 보고된 위치 근처에서 원본 파일이 깨졌다는 뜻으로, 대개 빠진 따옴표나 뒤에 남은 쉼표 때문이니, 원본을 검사하고 고치세요. 어떤 변환기도 깨진 입력을 추측해서는 안 됩니다. 한 열로 열리는 것은 여는 쪽의 구분자 불일치이니, 다시 가져와서 파일이 쓰인 구분자를 고르세요.

셀 안에 읽을 수 없는 JSON 텍스트가 보인다면 평탄화가 빠졌다는 뜻입니다. Python 짧은 스크립트와 jq 한 줄 명령어는 평탄화하지 않으므로, 위의 평탄화 변형을 쓰거나 변환기 페이지에서 평탄화 토글을 켜세요. 파일과 열 순서가 다르다면 도구가 키를 정렬했다는 뜻입니다. jq는 keys_unsorted가 필요하고, Node 스크립트는 처음 본 순서를 유지합니다. 행이 통째로 빠졌다면 행 탐색기가 의도한 목록이 아닌 다른 목록을 골랐다는 뜻으로, 감싼 API 응답에서 흔합니다. 도구가 목록 자체를 가리키게 하거나, 먼저 응답을 풀어 놓으세요.

한글이 깨져 보인다면 인코딩 문제부터 확인하세요. 이 페이지의 변환기와 위 스크립트들은 UTF-8로 파일을 쓰므로, 엑셀에서 더블클릭이 아니라 텍스트 가져오기로 열고 인코딩을 65001 유니코드 UTF-8로 지정하면 글자가 바로잡히는 경우가 많습니다. 파일을 메모장이나 VS Code 같은 텍스트 편집기에서 열어 첫 줄을 보는 것도 좋은 진단입니다. 구분자가 실제로 무엇인지, 헤더가 있는지, 마지막 행에 줄바꿈이 있는지가 눈에 보입니다. 행 수가 의심스러울 때는 텍스트 편집기의 줄 수와 JSON 객체 수를 비교하세요. 줄바꿈을 포함한 셀 때문에 줄 수가 행 수보다 많을 수 있으니, 개행이 들어간 셀은 인용 부호로 감싸져 있는지 함께 확인하세요. 진단 순서는 고정하는 것이 좋습니다. 먼저 파일을 텍스트로 보고, 다음으로 구분자와 인코딩을 확인하고, 그다음으로 평탄화와 행 목록을 확인하세요. 이 순서대로 보면 대부분의 로컬 변환 문제는 변환기를 바꾸지 않고도 원인을 찾을 수 있습니다.

관련 가이드

자주 묻는 질문

JSON을 CSV로 로컬에서 변환한다는 것은 무슨 뜻인가요?

변환이 서버가 아니라 내 컴퓨터에서 실행된다는 뜻입니다. 브라우저 탭 안에서 실행되는 클라이언트 측 변환기 페이지, VS Code나 Excel 같은 설치형 소프트웨어, Python, jq, Node로 직접 실행하는 스크립트가 될 수 있습니다. 세 경우 모두 파일이 컴퓨터를 떠날 필요가 없습니다.

이 페이지의 변환기는 로컬 방식인가요?

예, 그렇습니다. JSON을 붙여 넣거나 업로드하면 변환이 브라우저 탭 안에서 실행되고, 결과가 다운로드 파일로 돌아옵니다. 네트워크를 끊고 변환해도 여전히 동작하는 것으로 검증할 수 있습니다. 네트워크를 쓰는 버튼은 입력한 주소에서 JSON을 가져오는 선택적 URL 가져오기 버튼뿐입니다.

JSON을 CSV로 로컬에서 변환하려면 설치가 필요한가요?

변환기 페이지를 쓰면 필요 없습니다. 아무것도 설치하지 않습니다. 반복 가능한 스크립트를 원한다면 Python 3는 개발자 컴퓨터 대부분에 이미 설치되어 있고 표준 라이브러리만으로 충분합니다. jq와 Node는 각각 한 번 설치하면 되고, 설치 뒤에는 완전히 오프라인으로 동작합니다.

민감한 데이터에는 어느 로컬 방법이 가장 좋은가요?

코드를 볼 수 있는 방법이라면 모두 괜찮지만, 직접 읽은 짧은 스크립트가 가장 강한 선택입니다. 숨길 것이 없기 때문입니다. 민감한 데이터에 실행하기 전에 스크립트를 읽고, 원본 JSON을 보관하고, 파일을 업로드하는 도구보다 클라이언트 측 페이지나 스크립트를 우선하세요.

인터넷 없이 JSON을 CSV로 로컬에서 변환할 수 있나요?

예, 그렇습니다. 변환기 페이지는 한 번 로드되면 오프라인으로 동작하고, Python, jq, Node, VS Code, Excel은 모두 완전히 오프라인으로 실행됩니다. 연결이 필요한 단계는 URL에서 JSON을 가져오는 선택적 단계뿐으로, 변환 자체와는 별개입니다.

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

여는 쪽의 구분자 불일치이지 깨진 데이터가 아닙니다. 스프레드시트가 파일이 쓰인 구분자와 다른 구분자로 나누었습니다. 파일을 다시 가져와서 맞는 구분자를 고르거나, 세미콜론이나 탭으로 CSV를 다시 만들면 열이 나타납니다.

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

예, 모든 변환과 같은 정보가 손실됩니다. 값은 유지되지만 타입은 텍스트가 되고, 중첩 객체는 점 표기법 열이 되며, 목록은 이어 붙인 셀이나 JSON 텍스트가 됩니다. CSV만으로는 원래 트리로 돌아갈 방법이 없으므로, 원본 JSON 파일은 항상 보관하세요.

지금 바로 로컬 방법을 써 보세요

이 페이지의 변환기에 어떤 JSON이든 붙여 넣고 브라우저 탭 안에서 변환되는 모습을 지켜보세요. 업로드도, 회원 가입도 없고, 아무것도 컴퓨터를 떠나지 않습니다. 아니면 Python 스크립트를 복사해 내 파일에 실행해 보세요.

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