NewIntroducing QODEX QA Services — platform-powered QA for API-driven teams.Learn more →
API Testing2 min read

JSONをCSVに変換する方法: ツール、Python、JavaScriptコード例

S
Shreya Srivastava
Content Team
Updated on: February 2026

JSONをCSVに変換する方法: クイックメソッド

JSONをCSVに変換することは、最もよく行われるデータ変換タスクの一つです。ExcelでAPIデータを分析する場合、レポート用のデータベースレコードをエクスポートする場合、機械学習のトレーニングデータを準備する場合など、最も迅速な方法を以下に紹介します。

方法

最適な用途

スキルレベル

Qodex JSON to CSV Converter

手軽な一回限りの変換

コーディング不要

Python (pandas)

大規模データセット、自動化

基本的なPython

JavaScript (json2csv)

Node.jsプロジェクト、APIパイプライン

基本的なJavaScript

コマンドライン (jq + miller)

シェルスクリプト、クイック変換

CLIの基礎知識

Excel Power Query

非技術系ユーザー

コーディング不要

方法1: 無料のオンラインコンバーター(コード不要)

JSONをCSVに変換する最も速い方法は、Qodexの無料JSON to CSV Converterを使用することです。

  1. JSONデータを貼り付けるか、.jsonファイルをアップロードします

  2. ツールが自動的に構造を検出し、ネストされたオブジェクトをフラット化します

  3. 出力された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.cityaddress.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への変換は常にフラットなオブジェクトを生成します。ネスト構造が必要な場合は、カスタム変換ロジックを作成する必要があります。