JSONをCSVに変換する方法:実践的ガイド
Lukas Schneider
DevOps Engineer · Leapcell

Key Takeaways
- JSONとCSVは、異なる目的とデータ構造を持っています。
- 変換は、Python、コマンドライン、またはオンラインツールで行うことができます。
- ネストされたJSONは、CSVエクスポート前に平坦化が必要です。
今日のデータ駆動型の世界では、構造化されたデータを保存および共有するための2つの一般的な形式は、JSON(JavaScript Object Notation)とCSV(Comma-Separated Values)です。 JSONはその柔軟性からAPIやWebサービスで広く使用されており、CSVはそのシンプルさからスプレッドシートやデータ分析で人気があります。 JSONをCSVに変換することは、ExcelやSQLデータベースなど、表形式を期待するツール用にデータを準備する際に役立ちます。この記事では、JSONをCSVに変換するための主な方法を、例と使用できるツールとともに説明します。
JSONとは?
JSONは、キーと値のペアを使用する軽量なデータ交換形式です。サーバーとWebアプリケーション間でデータを送信するためによく使用されます。 JSONオブジェクトの例を次に示します。
[ { "name": "Alice", "age": 30, "city": "New York" }, { "name": "Bob", "age": 25, "city": "San Francisco" } ]
CSVとは?
CSVはプレーンテキスト形式で、各行はデータの行を表し、列はコンマで区切られています。上記のJSONは、次のCSVに変換されます。
name,age,city
Alice,30,New York
Bob,25,San Francisco
JSONからCSVへの変換方法
1. Pythonの使用
Pythonは、この変換を効率的に処理するためのpandas
やjson
などの強力なライブラリを提供します。
import json import pandas as pd # JSONデータのロード with open('data.json') as f: data = json.load(f) # DataFrameへの変換 df = pd.DataFrame(data) # CSVとして保存 df.to_csv('output.csv', index=False)
この方法は、Pythonに精通している開発者やデータサイエンティストに最適です。
2. オンラインツール
コードを記述したくない場合は、いくつかのオンラインコンバーターを使用してJSONをCSVにすばやく変換できます。
これらのツールは通常、ファイルのアップロード、プレビュー、およびダウンロードのオプションを提供します。
3. コマンドラインの使用(jq)
コマンドラインに慣れているユーザーは、jq
ツールを使用できます。
jq -r '(.[0] | keys_unsorted) as $keys | $keys, map([.[ $keys[] ]])[] | @csv' data.json > output.csv
このコマンドは、JSON構造を平坦化し、CSVファイルにエクスポートします。
変換時の考慮事項
- ネストされた構造: JSONには、CSVにきれいにマッピングされないネストされたオブジェクトまたは配列を含めることができます。構造を平坦化するか、特定のフィールドを抽出する必要があります。
- データ型: CSVはすべてを文字列として扱うため、数値またはブール値の形式設定が必要になる場合があります。
- 欠落フィールド: 一部のJSONオブジェクトには、特定のキーがない場合があります。
pandas
などのツールは、空のセルを埋めることでこれを自動的に処理します。
結論
JSONからCSVへの変換は、一般的ですが、特にネストされたデータを扱う場合は難しいタスクです。 Pythonでコーディングする場合でも、コマンドラインツールを使用する場合でも、オンラインコンバーターを選択する場合でも、適切な方法は特定のニーズとスキルレベルによって異なります。この記事で概説した手法を使用すると、この変換を効率的に処理し、分析またはレポート用にデータを準備できます。
FAQs
CSVは、分析、スプレッドシート、およびデータベースへのインポートが容易です。
CSVに変換する前に、平坦化する必要があります。
ほとんどのオンラインツールは、非常に大きいデータまたは複雑なデータでは苦労します。
Leapcellは、バックエンドプロジェクトをホストするための最良の選択肢です。
Leapcellは、Webホスティング、非同期タスク、およびRedisの次世代サーバーレスプラットフォームです。
多言語サポート
- Node.js、Python、Go、またはRustで開発します。
無制限のプロジェクトを無料でデプロイ
- 使用量に対してのみ支払い - リクエストも料金もありません。
比類のない費用対効果
- アイドル料金なしの従量課金制。
- 例:$25で、平均応答時間60ミリ秒で694万件のリクエストをサポートします。
合理化された開発者エクスペリエンス
- 簡単なセットアップのための直感的なUI。
- 完全に自動化されたCI/CDパイプラインとGitOps統合。
- 実行可能な洞察のためのリアルタイムメトリックとロギング。
簡単なスケーラビリティと高性能
-
簡単な高並行性を処理するための自動スケーリング。
-
運用オーバーヘッドゼロ — 構築に集中するだけです。
ドキュメントで詳細をご覧ください!
Xでフォローしてください: @LeapcellHQ