シンプルな Word ドキュメントに 20 人の名前とその電話番号が書かれていると想像してください。理解するのは難しいですが、それでもなんとか読めるかもしれません。ここで、200 人の名前を想像してください。今回は、そのシリアル番号と住所、および電話番号がプレーン テキストで表示されます。不器用ですよね?
このデータを構造化された形式で表示できれば、より明確になると思いませんか?はい、そうです!データ サイエンティストやアナリストが分析にフォーマットされたデータを使用するのはこのためです。データを保存または操作するための 2 つの形式は、JSON と CSV です。
JSON は、アプリケーションまたはサーバー間のデータ交換で知られる軽量ファイルです。データはキーと値のペアで保存されます。
CSV ファイルはビッグデータを保存するためのカンマ区切りの値です。これらはカンマ区切りの値ですが、分析に Python を使用する場合、表形式の構造で表示されることがよくあります。

Python で JSON を CSV に変換する理由

データ分析の高速化: CSV ファイルに対する Python 操作が高速化されています。 CSV 形式の場合は、データをすばやく表示、並べ替え、フィルタリングし、トリミングすることができます。また、Python には CSV ファイルのデータ分析を効率的に行うための Pandas というライブラリがあります。
さまざまなデータ処理ツールのサポート: JSON ファイルは軽量でデータ交換が簡単ですが、CSV ファイルはスプレッドシートなどのデータベースや Python などのプログラミング言語を使用して視覚化および分析する方が快適です。
メモリの効率化: JSON 形式にはメタデータが含まれているため、メモリにある程度の負荷がかかりますが、CSV は追加の句読点やメタデータを含まない単なるカンマ区切りの値です。さらに、JSON データの解析には CSV よりも多くのメモリが必要です。
そのため、JSON と比較して、CSV 形式は大規模なデータセットの保存と処理においてメモリ効率が高くなります。
人間が読める: CSV 形式は手動検査に適しています。テーブルまたはスプレッドシートで開くと、CSV データを簡単に読んで理解できますが、JSON 形式は、特にネストされたオブジェクトが含まれている場合、読むのがやや複雑になります。
パフォーマンス: CSV ファイルの解析と処理は、JSON ファイルと比較して高速で、必要なメモリが少ないため、最適なパフォーマンスが得られます。
Python で JSON を CSV に変換するには?

Python で JSON を CSV に変換する手順は次のとおりです。
ステップ 1: JSON および CSV 組み込みモジュールをインポートします。
import json
import csv
ステップ 2: json_data.json という名前のファイルに JSON データがあると仮定します。このデータをload関数を使って変数に読み込みます。
with open('json_data.json') as data:
json = json.load(data)
ステップ 3: 列名としての JSON ヘッダーとセル内の対応する値を含む csv ファイルを作成します。
headers = json[0].keys()
with open('data.csv', 'w', newline='') as csv_file:
csv_writer = csv.DictWriter(csv_file, fieldnames=headers)
csv_writer.writeheader()
for row in json:
csv_writer.writerow(row)
Python で Pandas を使用して JSON を CSV に変換する方法

上に示したように、JSON および CSV 組み込みライブラリを使用して変換用の独自のカスタム コードを作成することもできますが、Pandas はあなたの友人です。わずか 2 行のコードで変換がさらに簡単になります。
Pandas を知らない人のために説明すると、Pandas は大規模なデータを操作および分析するための Python のライブラリです。ここでは、Pandas を使用して JSON を CSV に簡単に変換する方法を紹介します。
ステップ 1: JSON ファイルを CSV に変換するには、まず Python に Pandas をインポートする必要があります。
Import pandas as pd
ステップ 2: JSON データを Pandas DataFrame にロードします。
data = pd.read_csv('json_data.json')
ステップ 3: データを CSV ファイルに書き込みます。
data.to_csv('csv_data', index=False)
変換された CSV データを保存するために、現在の作業ディレクトリに「csv_data」という名前のファイルが作成されます。
ここでの「index = False」は、CSV ファイル内のインデックス列を除外します。
以上、Pandas を使用して JSON を CSV に変換するのはとても簡単でした。
大きな JSON ファイルを CSV に変換する際の考慮事項

- メモリ – 大規模なデータセットで通常直面する最初の問題はメモリです。データ全体を CSV ファイルに一度にロードしようとすると、メモリの問題が発生する可能性があります。したがって、メモリの問題を避けるために、大きなデータをチャンクに分けて CSV に処理します。
- 冗長性の削除 – データセット内に同じ冗長データが複数存在しても、サイズが増加するだけで、データに価値は追加されません。したがって、データセットから冗長なデータを削除します。こうすることで、データ ファイルのサイズを削減でき、変換が高速化されます。
- ライブラリを使用する – データが小さい場合は、カスタム Python コードを記述して CSV に変換できますが、データが大きい場合は、Pandas などの Python ライブラリを使用して JSON を CSV に効率的に変換する必要があります。
- バックアップ – 大きな JSON ファイルを CSV に変換する際に、データのバックアップを作成します。これにより、変換中に問題が発生した場合に元のデータに戻すことができます。
変換中に発生する可能性のある潜在的なエラー
#1. ユニコードエラー
JSON データから CSV ファイルに特殊文字または非 ASCII 文字を書き込むと、このエラーが発生します。
これを修正するには、JSON を CSV ファイルに変換するときに使用する open 関数で適切なエンコーディングを指定する必要があります。
これを行うには、次に示すように、encoding というパラメーターを open 関数に追加します。
with open('data.csv', 'w', newline='', encoding='utf-8') as csv_file
#2. 値エラー: 予期されたオブジェクトまたは値です
このエラーは、JSON ファイルの内容に問題がある場合、主に関数が JSON オブジェクトまたはファイルを解析できない場合にポップアップ表示されます。
したがって、JSON データが正しい形式であり、JSON 構文に従っていることを確認してください。
さらに、JSON データに配列などのネストされたオブジェクトが含まれている場合は、JSON オブジェクトが [..] で囲まれ、配列が [..] で囲まれていることを確認してください。また、ネストされた JSON を CSV に変換する前に、「JSON.normalize」を使用してデータがフラット化されていることを確認してください。
#3. CSVヘッダー
JSON と CSV の主な違いの 1 つは、JSON データには CSV のようなヘッダーがないことです。したがって、JSON を CSV に変換する際には、CSV ヘッダーを適切に処理してください。必要に応じて、値を指定することも、空のままにすることもできます。
ただし、CSV ファイルにヘッダーを付ける場合は、そのデータ型がファイル内の実際のデータと一致していることを確認してください。
結論
JSON から CSV への変換は、Python で行うと簡単です。 Pandas ライブラリを使用するとさらに簡単になります。
そこで、この記事では、Python を使用して JSON ファイルを CSV に変換する方法を説明します。また、Pandas を使用して JSON を CSV に効率的に変換する方法も紹介しました。
次に、変換プロセスをよりスムーズに行うために留意すべき重要な点と、変換中に発生する可能性のある一般的なエラーを示します。
JSON ファイルを Excel に変換することもできます。