Command Palette

Search for a command to run...

Преобразование JSON в CSV: 5 методов, используемых разработчиками в 2026 году

Преобразование JSON в CSV: 5 методов, используемых разработчиками в 2026 году

T
Toolz Team
|Jun 27, 2026|15 Мин. читать

Часть коллекции Инструменты для данных

json в CSV конвертер

Преобразуйте JSON в CSV онлайн. Превращает массив объектов в готовый к работе с электронными таблицами файл, выравнивает вложенные объекты и экранирует поля по RFC 4180. 100% клиентская сторона, без регистрации.

Открыть инструмент «json в CSV конвертер»

Первый JSON-CSV конвертер, который я когда-либо писал, продержался три дня в производстве.

Это был & quot;экспорт в электронную таблицу& quot; кнопка в панели администратора Laravel, и моя логика преобразования была - I' я не горжусь этим - values.join(","), йо- Оно прошло через тестирование. Затем пользователь экспортировал список клиентов, где одна компания была названа «Смит, Джонс и партнеры» и каждая после этого колонка смещала одну позицию вправо. Их бухгалтер импортировал 340 строк несоответствующих данных, прежде чем кто-либо заметил, что номера телефонов находятся в колонке электронной почты.

Запятая в CSV — это не разделитель, который вы можете цеплять. это грамматика, определенная в RFC 4180, с фактическими правилами побега. Именно из-за этого баг json в CSV конвертер Позже я построил для Toolz.dev, что бегство считается неоспоримым - и почему это руководство проводит реальное время на крайних случаях, а не только на счастливом пути.

Вот пять методов, которые я на самом деле использую, когда каждый выигрывает, и где каждый кусается.

TL;DR: Для одноразовых преобразований вставьте свой JSON в Toolz.dev json в CSV конвертер- он выравнивает вложенные объекты с помощью точечной записи, правильно выходит из RFC 4180 и работает на 100% в вашем браузере. Для повторяющихся заданий напишите это: pd.json_normalize() В Python или json2csv Пакет в узле. Подтвердите с помощью Форматтер JSON во-первых, сохранение оригинального выравнивания JSON-CSV является односторонним.


Зачем вам нужен CSV, если у вас уже есть JSON?

Потому что люди, которым нужны ваши данные, не живут в вашем терминале. Каждый запрос на преобразование, который я когда-либо получал, сводит к одной из пяти ситуаций:

Аналитики работают в электронных таблицах. Excel, Google Sheets, Tableau, Power BI - все они вдыхают CSV изначально и подавляются вложенным JSON. Преобразование вывода API в CSV - это то, как инженерные данные достигают бизнес-стороны.

Базы данных масс-импорт плоских файлов. PostgreSQL's COPY и MySQL's LOAD DATA нужен табличный ввод. Столбцы JSON существуют, но загрузка в реальные реляционные таблицы означает сначала выравнивание.

Миграциям нужна лингва-франка. Перемещение данных между хранилищем NoSQL и реляционным или между двумя платформами SaaS, CSV — это формат, который надежно понимает оба конца.

Соответствие любит плоские файлы. Некоторые требования к архиву задают читаемые человеком форматы. CSV открывается во всем, через несколько десятилетий.

Заинтересованные стороны не могут читать JSON. Менеджер по продукту, спрашивающий "Можно ли получить это в виде электронной таблицы" является единственным наиболее распространенным триггером. Это был триггер для моей сломанной кнопки экспорта.

Diagram showing JSON data flowing through conversion to CSV format with use cases branching to spreadsheets, databases, and analytics


Что затрудняет преобразование JSON-CSV?

Плоский JSON тривиальный. ЭТО:

[
  {"id": 1, "name": "Alice", "email": "[email protected]", "age": 30},
  {"id": 2, "name": "Bob", "email": "[email protected]", "age": 25}
]

Становится это, ключи к заголовкам, элементы в строки:

id,name,email,age
1,Alice,[email protected],30
2,Bob,[email protected],25

Но реальные ответы API никогда не бывают ровными. Они выглядят так:

[
  {
    "id": 1,
    "name": "Alice",
    "address": {"street": "123 Main St", "city": "San Francisco", "state": "CA"},
    "skills": ["JavaScript", "Python", "Go"]
  }
]

CSV не имеет понятия «внутри». Таким образом, вы выбираете стратегию сплющи, и у каждого из них есть стоимость:

Уплощение дотна- вложенные ключи становятся составными заголовками:

id,name,address.street,address.city,address.state,skills
1,Alice,123 Main St,San Francisco,CA,"JavaScript; Python; Go"

Индексированные столбцы для массивов-- skills.0, skills.1, skills.2, йо- Предсказуемо, но рекорд с 14 навыками дает 14 колонок для всех.

Кодексы JSON- засуньте сырой JSON в камеру, цитата двойная. Без потерь, нечитаемый, и это огорчает аналитиков.

Точечная запись со связанными массивами является правильным стандартом для потребления человеком - it's что Конвертер Toolz.dev Производит. Индексированные столбцы выигрывают, когда нисходящий код нуждается в адресе каждого элемента. JSON-IN-CELLS — последнее средство для круглосуточных поездок.


Метод 1: Как преобразовать JSON в CSV онлайн?

Лучше всего для: Одноразовые конверсии, не разработчики, что-то под несколько десятков МБ.

  1. откройте json в CSV конвертер, йо-
  2. Вставьте свой JSON - массив объектов или один объект.
  3. Инструмент обнаруживает структуру, сглаживает вложенные объекты до точки сведения и мгновенно отображает CSV.
  4. скопируйте или скачайте .csv, йо-

Причина, по которой я по умолчанию использую этот сценарий для чего-либо неповторяющегося: нулевая настройка, правильный выход из RFC 4180 (выучил этот урок), автоматическое объединение ключей для непоследовательных объектов и - потому что на стороне клиента 's - ответ API, полный только что вставленных вами писем от клиентов, никогда не покидает вашу машину. Посмотрите вкладку "Сеть", если вы не верите ' не верьте мне; этот тест 's я применяю к каждому онлайн-конвертеру, но большинство из них его не проходят.

Где это неправильный инструмент: повторяющиеся преобразования (скрипт IT) и глубоко патологическое вложение, где вы хотите вручную выбрать стратегию сглаживания.

Diagram of the toolz.dev JSON to CSV converter showing JSON input on the left and CSV output on the right


Метод 2: Как преобразовать json в CSV в javascript?

Лучше всего для: Стройте конвейеры, службы узлов, логику пользовательского преобразования.

Здесь's минимальная правильная версия - обратите внимание на побег, который является той частью, которую пропустила моя трехдневная катастрофа:

function jsonToCsv(jsonArray) {
  if (!jsonArray.length) return "";

  const headers = Object.keys(jsonArray[0]);
  const csvRows = [
    headers.join(","),
    ...jsonArray.map(row =>
      headers.map(header => {
        const value = row[header] ?? "";
        // RFC 4180: double embedded quotes, wrap anything containing , " or newline
        const escaped = String(value).replace(/"/g, '""');
        return /[,"\n\r]/.test(escaped) ? `"${escaped}"` : escaped;
      }).join(",")
    )
  ];

  return csvRows.join("\n");
}

Для вложенного ввода сначала сплющите и объедините клавиши - взятие заголовков только из первого объекта является второй по распространенности ошибкой в ручных преобразователях:

function flattenObject(obj, prefix = "") {
  const result = {};
  for (const [key, value] of Object.entries(obj)) {
    const newKey = prefix ? `${prefix}.${key}` : key;
    if (value && typeof value === "object" && !Array.isArray(value)) {
      Object.assign(result, flattenObject(value, newKey));
    } else if (Array.isArray(value)) {
      result[newKey] = value.join("; ");
    } else {
      result[newKey] = value;
    }
  }
  return result;
}

function nestedJsonToCsv(jsonArray) {
  const flattened = jsonArray.map(item => flattenObject(item));
  // Union of ALL keys, not just the first object's
  const headers = [...new Set(flattened.flatMap(Object.keys))];
  // ...then emit rows exactly as in jsonToCsv above
}

Или пропустить ручную прокатку - the json2csv Пакет обрабатывает эти края в течение многих лет:

import { Parser } from "json2csv";

const parser = new Parser({ flatten: true });
const csv = parser.parse(data);

Метод 3: Как преобразовать json в CSV в Python?

Лучше всего для: Рабочие процессы науки о данных, все, что уже касается панд.

Однострочный Pandas покрывает плоский JSON:

import pandas as pd

df = pd.read_json("data.json")
df.to_csv("output.csv", index=False)

Полезная функция pd.json_normalize()- специально создан для вложенных ответов API:

import pandas as pd
import requests

response = requests.get("https://api.example.com/users")
df = pd.json_normalize(response.json())
print(df.columns.tolist())
# ['id', 'name', 'skills', 'address.street', 'address.city', 'address.state']

# Arrays still need a decision — join them explicitly:
df["skills"] = df["skills"].apply(lambda x: "; ".join(x) if isinstance(x, list) else x)
df.to_csv("output.csv", index=False)

заметьте, что json_normalize Плоские гнездятся предметы Но уходит широкие стрел в списках Python - если вы пропустите шаг соединения, ваши ячейки CSV будут содержать ['JavaScript', 'Python'] дословно. Все бьют это один раз.

Панды нет? Стандартная библиотека обрабатывает плоский JSON:

import json, csv

with open("data.json") as f:
    data = json.load(f)

with open("output.csv", "w", newline="") as f:
    writer = csv.DictWriter(f, fieldnames=data[0].keys())
    writer.writeheader()
    writer.writerows(data)

Метод 4: Как преобразовать JSON в CSV из командной строки?

Лучше всего для: Сценарии оболочки, конвейеры CI, серверы, где установка панд является излишним.

jq Делает ли это изначально с @csv, который уходит правильно:

cat data.json | jq -r '
  (.[0] | keys_unsorted) as $keys |
  ($keys | @csv),
  (.[] | [.[$keys[]]] | @csv)
'

csvkit'с in2csv Является маломыслимым вариантом:

pip install csvkit
in2csv data.json > output.csv

и Миллер (mlr) светится, когда вы хотите фильтровать в том же проходе:

mlr --json2csv filter '$age > 25' data.json > output.csv

Композитивность суть - curl -s api.example.com/data | jq ... > report.csv представляет собой полный конвейер API-to-Spreadsheet в одной строке cron.


Метод 5: Можете ли вы импортировать JSON непосредственно в Excel или Google Sheets?

Лучше всего для: Неразработчики, данные по обновлению в режиме реального времени, одноразовые импортные импортные данные.

превосходно: Данные → Получить данные → из Интернета, вставить URL-адрес API, а Power Query предоставляет вам визуальный редактор для расширения вложенных записей перед загрузкой. Действительно хорошо для повторных обновлений одного и того же источника.

Google Таблицы: Расширения → Сценарий приложений, затем небольшая функция выбора:

function importJSON(url) {
  const response = UrlFetchApp.fetch(url);
  const data = JSON.parse(response.getContentText());
  if (!Array.isArray(data) || data.length === 0) return [["No data"]];
  const headers = Object.keys(data[0]);
  const rows = data.map(item => headers.map(h => item[h] ?? ""));
  return [headers, ...rows];
}

используется в ячейке как =importJSON("https://api.example.com/data"), йо-

Честный взгляд: для одноразового импорта, конвертация с Онлайн инструмент И открытие CSV быстрее, чем любой из них. Нативные маршруты электронной таблицы зарабатывают себестоимости только тогда, когда данные обновляются по расписанию.


Какой метод выбрать?

метод снабжать Вложенный JSON повторное использование Данные остаются локальными
Онлайн конвертер ни один автоматический Ручной каждый раз Да - клиентская сторона
JavaScript / Json2CSV npm install через flatten отличный да
Python / Панды установка пипс json_normalize отличный да
JQ / CSVKIT / MLR менеджер пакетов Ручные пути Отлично (CRON/CI) да
Эксель / листы Учет/приложение Пользовательский интерфейс Power Query Хорошо (авто-обновление) Excel: да; листы: серверы Google

Мое правило: дотянуться до браузерного инструмента до третьего раза I & #39;m конвертируя ту же форму данных - тогда это становится скриптом.


Какие крайние случаи нарушают преобразование JSON-CSV?

Четыре ловушки составляют почти каждый сломанный экспорт, который я отлаживал:

Непоследовательные ключи. Объект 1 имеет email, объект 2 имеет phone, объект 3 имеет оба. Возьмите заголовки только от первого объекта и вы молча отбрасываете данные. исправление является ключ-союз по всем объектам, с отсутствующими значениями как пустые ячейки - что хорошие инструменты делают автоматически.

Неочищенные специальные символы. Проблема "Смит, Джонс и партнеры". PER RFC 4180: оберните значения, содержащие запятые, кавычки или строки в двойных кавычках, и удвойте все кавычки (внедренные) ("He said ""hello""").

Большие файлы. За последние 100 МБ или около того анализ всего файла становится болезненным. Поток вместо - jq Потоки, Pandas читает фрагментами, а формат строк JSON (по одному объекту в строке) упрощает оба. Для файлов до нескольких десятков МБ инструмент браузера подходит, так как нет загрузки.

кодирование. Имена и адреса несут символы, не являющиеся ASCII. Держите все UTF-8 от начала до конца и с подозрением относитесь к Excel в Windows, которая исторически хотела, чтобы спецификация UTF-8 правильно обнаружила.

И одна практика, которая не является необязательной: проверяйте, прежде чем конвертировать. Усеченный файл JSON завершается сбивающим с толку при конверсии, но, очевидно, в Форматтер JSON, йо- Тридцать секунд проверки превосходят десять минут "Почему мой CSV пуст.


Часто задаваемые вопросы

Как конвертировать JSON в CSV онлайн бесплатно?

Вставьте свой JSON в Конвертер JSON в CSV на Toolz.dev- он мгновенно генерирует CSV с вложенными объектами, сплющенными и обработанными экранирующими, а затем позволяет копировать или загружать результат. Никакой регистрации, а обработка на 100% зависит от клиента, поэтому ваши данные никогда не покидают ваш браузер.

Могу ли я преобразовать вложенный JSON в CSV?

да. Вложенные объекты сплющены в заголовки DOT-Notation (address.city), а массивы либо соединяются в разделительную строку, либо разбиваются на индексированные столбцы. выше Конвертер Toolz.dev Применяет точечное замечание автоматически; в Python, pd.json_normalize() делает то же самое.

Как преобразовать файл JSON в CSV в Python?

import pandas as pd; pd.read_json("data.json").to_csv("output.csv", index=False) Для плоских JSON. Для вложенных структур используйте pd.json_normalize(data) сначала - и не забудьте самостоятельно присоединить любые столбцы массива, так как нормализуйте списки листьев в целости и сохранности.

Как лучше всего конвертировать очень большие файлы JSON?

Поток, а не загрузка: jq В командной строке или панд с дробными чтениями. Преобразование файла в строки JSON (по одному объекту на строку) сначала упрощает потоковую передачу. Браузерные инструменты удобны до нескольких десятков МБ, за ~ 100 МБ, пользуйтесь командной строкой.

Как преобразовать CSV обратно в JSON?

выше CSV в JSON конвертер переворачивает путешествие - каждая строка становится объектом, на который нажимает строка заголовка Программно: pd.read_csv("data.csv").to_json(orient="records"), йо-

Почему в моем CSV есть кавычки вокруг некоторых значений?

Это правильное поведение, а не ошибка. RFC 4180 требует двойных кавычек вокруг любого значения, содержащего запятые, новые строки или символы кавычки, со встроенными кавычками удвоены. Электронные таблицы и парсеры разбивают их на чтение.

Преобразование JSON-CSV без потерь?

Для плоского JSON да. Для вложенного JSON значения выживают, но иерархия не выживает 't - заголовки точечных обозначений сплющены представитель, и вы не можете всегда реконструировать точную первоначальную вложенность из них. Сохраняйте исходный JSON; рассматривайте CSV как производное представление.

Почему мои столбцы не выровнены после преобразования?

Почти всегда сбой выхода: значение, содержащее запятую было 't цитируется, поэтому парсеры видят дополнительные столбцы с этого момента. It's точная ошибка с моей кнопки экспорта Laravel. Используйте преобразователь, который реализует RFC 4180, а не значения соединения строк - и если вы написали свой собственный, протестируйте его с таким значением, как Smith, Jones & Partners, йо-

Как преобразовать json в CSV в Excel или Google Sheets?

Оба приложения импортируют JSON через помощника, а не в виде вставки. В Excel используйте данные → Получить данные → из файла → из JSON, затем сгладьте запрос в Power Query и закройте & Загрузите. В Google Sheets вставьте небольшие массивы с помощью сценария временного приложения или конвертируйте с помощью json в CSV конвертер сначала откройте полученный файл - обычно это более быстрый путь для разового файла.

Какой метод JSON в CSV мне следует использовать?

Для быстрого одноразового использования конвертер на стороне клиента является самым быстрым и сохраняет данные в тайне. Для повторяющихся конвейеров используйте Python с пандами; для огромных файлов продавайте с помощью jq в командной строке, а reach для импорта электронных таблиц только тогда, когда не разработчики владеют рабочим процессом. Сопоставьте инструмент с тем, как часто вы будете повторять работу, а не только размер файла.


Сопоставьте метод с заданием

JSON-to-CSV выглядит как решенная однострочная, пока запятая в названии компании не сместит 340 строк клиентских данных на одну колонку вправо. Метод имеет меньшее значение, чем соблюдение формата: Escape Per RFC 4180, объедините свои ключи, намеренно определите свою стратегию сглаживания и сохраните оригинальный JSON.

Для следующего одноразового преобразования json в CSV конвертер это пятнадцать секунд. Подтвердите сначала с помощью Форматтер JSON, а когда данные должны вернуться, CSV в JSON конвертер замыкает цикл - все три в вашем браузере, ни один из них никогда не видел вашу сторону сервера данных.


Связанные статьи:

Frequently Asked Questions

Paste your JSON into the JSON to CSV Converter on toolz.dev — it instantly generates CSV with nested objects flattened and escaping handled, then lets you copy or download the result. No signup, and processing is 100% client-side, so your data never leaves your browser.

Comments

0 comments

0/2000 characters

No comments yet. Be the first to share your thoughts!