JSON в CSV/ JSON массив → CSV файл
Конвертируйте JSON массивы в CSV одним кликом — настраиваемые разделители, развёртывание вложенных объектов, прямая загрузка.
Разделитель
JSON
CSV
Этот инструмент решил вашу проблему?
Примеры кода
JavaScript / Node.js
// Using json2csv npm package
import { Parser } from 'json2csv';
const data = [
{ name: 'Alice', age: 30, city: 'Beijing' },
{ name: 'Bob', age: 25, city: 'Shanghai' },
];
const parser = new Parser({ fields: ['name', 'age', 'city'] });
const csv = parser.parse(data);
// name,age,city
// Alice,30,Beijing
// Bob,25,Shanghai
// Built-in (no deps)
const toCsv = (arr) => {
const keys = Object.keys(arr[0]);
const rows = arr.map(r => keys.map(k =>
JSON.stringify(r[k] ?? '')).join(','));
return [keys.join(','), ...rows].join('\n');
};Python (pandas)
import pandas as pd
import json
# From JSON string
json_str = '[{"name":"Alice","age":30},{"name":"Bob","age":25}]'
df = pd.read_json(json_str)
df.to_csv('output.csv', index=False)
# From nested JSON (flatten)
from pandas import json_normalize
data = [{"user": {"name": "Alice"}, "score": 100}]
df = json_normalize(data)
# Columns: user.name, score
df.to_csv('flat.csv', index=False)
# Custom delimiter
df.to_csv('output.csv', sep=';', index=False)Go
import (
"encoding/csv"
"encoding/json"
"os"
)
type Row struct {
Name string `json:"name"`
Age int `json:"age"`
}
func main() {
data := []Row{{"Alice", 30}, {"Bob", 25}}
f, _ := os.Create("output.csv")
w := csv.NewWriter(f)
w.Write([]string{"name", "age"})
for _, r := range data {
w.Write([]string{r.Name, fmt.Sprint(r.Age)})
}
w.Flush()
}Shell (jq + awk)
# jq: extract fields as TSV cat data.json | jq -r ' .[] | [.name, .age, .city] | @tsv ' > output.tsv # With headers cat data.json | jq -r ' ["name","age","city"], (.[] | [.name, .age, .city]) | @csv ' > output.csv # Using Miller (mlr) mlr --json --ocsv cat data.json > output.csv
Часто задаваемые вопросы
Какие типичные сценарии использования JSON в CSV?
JSON — стандартный формат данных API; CSV — формат для электронных таблиц (Excel, Google Sheets) и инструментов анализа данных (pandas, R). Типичные сценарии: экспорт данных API в Excel, импорт результатов запросов БД в аналитические пайплайны.
Как обрабатываются вложенные JSON объекты?
Два подхода: 1) Развёртывание — user.name и user.age становятся двумя столбцами. 2) Сериализация — вложенный объект преобразуется в JSON-строку в одной ячейке. Опция «Развернуть вложенные объекты» использует точечную нотацию.
Как обрабатываются специальные символы в CSV?
RFC 4180 требует: поля, содержащие запятые, переводы строки или двойные кавычки, должны быть заключены в двойные кавычки. Этот инструмент обрабатывает эти случаи автоматически.
Когда использовать точку с запятой вместо запятых?
В некоторых европейских странах (Германия, Франция, Нидерланды) запятые используются как десятичные разделители, поэтому Excel использует точку с запятой (;) как разделитель CSV по умолчанию.
Как конвертировать JSON в CSV в Python?
Со стандартной библиотекой: import json, csv; data = json.load(open('data.json')); writer = csv.DictWriter(open('out.csv', 'w'), fieldnames=data[0].keys()); writer.writeheader(); writer.writerows(data). С pandas также возможно.
Можно ли конвертировать форматы, отличные от JSON массивов?
Поддерживаются: JSON массивы (наиболее распространённые), отдельный JSON объект (одна строка вывода), объект с полем массива (извлекается первый массив). Не поддерживаются: глубоко вложенные массивы, нерегулярные массивы.