JSONをCSVに変換する方法: ツール、Python、JavaScriptコード例
JSONをCSVに変換する方法: クイックメソッド
JSONをCSVに変換することは、最もよく行われるデータ変換タスクの一つです。ExcelでAPIデータを分析する場合、レポート用のデータベースレコードをエクスポートする場合、機械学習のトレーニングデータを準備する場合など、最も迅速な方法を以下に紹介します。
方法 | 最適な用途 | スキルレベル |
|---|---|---|
手軽な一回限りの変換 | コーディング不要 | |
Python (pandas) | 大規模データセット、自動化 | 基本的なPython |
JavaScript (json2csv) | Node.jsプロジェクト、APIパイプライン | 基本的なJavaScript |
コマンドライン (jq + miller) | シェルスクリプト、クイック変換 | CLIの基礎知識 |
Excel Power Query | 非技術系ユーザー | コーディング不要 |
方法1: 無料のオンラインコンバーター(コード不要)
JSONをCSVに変換する最も速い方法は、Qodexの無料JSON to CSV Converterを使用することです。
JSONデータを貼り付けるか、.jsonファイルをアップロードします
ツールが自動的に構造を検出し、ネストされたオブジェクトをフラット化します
出力されたCSVファイルをダウンロードします
この方法は小規模から中規模のデータセットの手軽な一回限りの変換に最適です。アカウント不要、サーバーへのデータ保存なしです。
逆の変換については、CSV to JSON Converterをご利用ください。これらのフォーマットのより詳しい比較については、CSV vs JSON比較をご覧ください。
方法2: Pythonとpandasを使用する
Pythonのpandasライブラリは、プログラムによるJSONからCSVへの変換、特に大規模データセットや自動化パイプラインに最も人気の選択肢です。
import pandas as pd import json# シンプルなフラットなJSON配列 data = [ {"name": "Alice", "email": "alice@example.com", "age": 30}, {"name": "Bob", "email": "bob@example.com", "age": 25} ] df = pd.DataFrame(data) df.to_csv("output.csv", index=False)
# JSONファイルから df = pd.read_json("data.json") df.to_csv("output.csv", index=False)
# ネストされたJSONは先にフラット化する with open("nested.json") as f: data = json.load(f) df = pd.json_normalize(data) # ネストされたオブジェクトをフラット化 df.to_csv("output.csv", index=False)
主要な関数: pd.json_normalize()はネストされたJSONをドット記法の列(例: address.city、address.zip)にフラット化して処理します。これは実際のAPIレスポンスがほとんどフラットでないため、変換に不可欠です。
方法3: JavaScriptとjson2csvを使用する
Node.jsプロジェクトやJavaScriptで構築されたデータパイプラインの場合:
const { Parser } = require('json2csv');const data = [ { name: "Alice", email: "alice@example.com", age: 30 }, { name: "Bob", email: "bob@example.com", age: 25 } ];
// 基本的な変換 const parser = new Parser(); const csv = parser.parse(data); console.log(csv);
// ネストされたデータの場合、フラット化を指定する const { Parser } = require('json2csv'); const opts = { fields: ['name', 'address.city', 'address.zip'], unwind: ['orders'], // 配列を複数の行に展開する }; const parser = new Parser(opts); const csv = parser.parse(nestedData);
json2csvライブラリは、ネストされたオブジェクト、配列、混在した型など、最も一般的なJSON構造を処理します。npm install json2csvでインストールできます。
方法4: コマンドラインを使用する
シェルスクリプトや手軽なワンライナーには、jq(JSONプロセッサー)と標準ツールを組み合わせます。
# jqを使用してフラットなJSON配列をCSVに変換する cat data.json | jq -r ' (.[0] | keys_unsorted) as $keys | ($keys | @csv), (.[] | [.[$keys[]]] | @csv) ' > output.csv# miller(mlr)を使用する - フォーマット変換専用 mlr --json2csv cat data.json > output.csv
# Pythonのワンライナーを使用する python3 -c "import pandas as pd; pd.read_json('data.json').to_csv('output.csv', index=False)"
Miller(mlr)はデータフォーマット変換に特に便利です。macOSではbrew install miller、Ubuntuではapt install millerでインストールできます。
ネストされたJSONの処理
APIエンドポイントからの実際のJSONはフラットであることはほとんどありません。一般的なネスト構造の処理方法を以下に示します。
ネストされたオブジェクト - ドット記法の列へ
// 入力JSON {"name": "Alice", "address": {"city": "NYC", "zip": "10001"}}
// 出力CSV name,address.city,address.zip Alice,NYC,10001
配列 - 複数の行または区切り文字列へ
// 入力JSON {"name": "Alice", "tags": ["admin", "editor"]}// オプションA: 複数の行(unwind) name,tags Alice,admin Alice,editor
// オプションB: 区切り文字列 name,tags Alice,"admin;editor"
混在したネスト - フラット化とunwindの組み合わせ
深くネストされたJSONには2ステップのアプローチを使用します。まずjson_normalize()でオブジェクトをフラット化し、次に配列を別の行にunwindします。これにより、有効な表形式構造を作成しながらすべてのデータを保持できます。
これらのフォーマットの構造的な違いを理解することで、適切な変換アプローチを選択できます。トレードオフについてはCSV vs JSON比較をご覧ください。
よくある質問
ネストされたJSONをCSVに変換できますか?
はい、ただしネストされたJSONにはフラット化が必要です。ネストされたオブジェクトは通常、ドット記法の列名(例: address.city)に変換され、配列は複数の行に展開するか区切り文字列に結合できます。Pythonのpandas.json_normalize()とjson2csv Node.jsライブラリは、ほとんどのネストパターンを自動的に処理します。クイック変換には、QodexのJSON to CSV Converterがネスト構造を自動的に処理します。
JSONをCSVに変換するとき、どのデータが失われますか?
CSVはデータ型を表現できません(すべてテキストになります)、ネスト構造(ドット記法または複数の行にフラット化されます)、nullと空文字列の区別、またはboolean値(文字列"true"/"false"になります)を表現できません。これらの区別を保持する必要がある場合は、CSVと並べてJSONのコピーを保持するか、ParquetやNDJSONなどの型をサポートするフォーマットを使用することを検討してください。
大きなJSONファイルをCSVに変換するにはどうすればよいですか?
大きなファイル(100MB以上)の場合、ファイル全体をメモリに読み込むことは避けてください。ストリーミングアプローチを使用します。インクリメンタル解析にはPythonのijsonライブラリを使用するか、行ごとの読み込みでNDJSON(1行に1つのJSONオブジェクト)を処理します。非常に大きなデータセットには、Apache SparkやDuckDBが最小限のメモリ使用量でJSONをCSVに効率的に変換できます。
JSON APIレスポンスをCSVに変換するにはどうすればよいですか?
ほとんどのAPIレスポンスはオブジェクトのJSON配列を返します。これはCSVの行に直接マッピングされます。Pythonのrequestsライブラリでデータを取得し、pandasで変換します: pd.DataFrame(response.json()).to_csv('output.csv')。ページネーションのあるAPIの場合は、変換前にすべてのページをリストに収集してください。APIテストワークフローでは、Qodex.aiがテスト結果を直接CSVにエクスポートできます。
最良のJSONからCSVへのコンバーターは何ですか?
コーディング不要のクイック変換には: QodexのJSON to CSV Converter(無料、アカウント不要)。Pythonでのプログラム変換には: json_normalize()を使用したpandas。JavaScript/Node.jsには: json2csv npmパッケージ。コマンドラインには: miller(mlr --json2csv)。一回限り対自動化、小規模対大規模ファイル、フラット対ネストJSONなど、ユースケースに基づいて選択してください。
CSVをJSONに戻すことはできますか?
はい。フラットデータの逆変換は簡単です。各CSVの行が列ヘッダーをキーとするJSONオブジェクトになります。クイック変換にはQodexのCSV to JSON Converterを使用するか、Pythonでpandas.read_csv('data.csv').to_json()を使用します。CSVからJSONへの変換は常にフラットなオブジェクトを生成します。ネスト構造が必要な場合は、カスタム変換ロジックを作成する必要があります。
Discover, Test, & Secure your APIs 10x Faster than before
Auto-discover every endpoint, generate functional & security tests (OWASP Top 10), auto-heal as code changes, and run in CI/CD - no code needed.
Related Blogs





