JSON(JavaScript Object Notation)は、現在、Web上のデータ交換において広く使用されている形式です。一方、Excelは、表形式のデータを扱う上で非常に便利なツールであるため、JSONデータをExcel形式に変換することは非常に便利です。この記事では、PythonのOpenPyXLライブラリを使用してJSONデータをExcelに変換する方法を紹介します。
1. 必要なライブラリのインストール
PythonのOpenPyXLライブラリを使用してJSONデータをExcelに変換するために、最初に必要なライブラリをインストールします。以下のコマンドを使用してOpenPyXLをインストールします。
pip install openpyxl
2. JSONデータの読み込み
PythonプログラムでJSONデータを読み込むには、jsonライブラリを使用します。以下のコードでは、サンプルとして以下のようなJSONデータを使用しています。
[ { "name": "John", "age": 30, "city": "New York" }, { "name": "Jane", "age": 25, "city": "Los Angeles" }, { "name": "Bob", "age": 40, "city": "Chicago" }]
上記のJSONデータは、3つの要素を持つ配列です。各要素は、name、age、およびcityという3つのキーを持つオブジェクトです。以下のコードを使用して、このJSONデータを読み込みます。
import json # JSONデータの読み込み with open('sample.json', 'r') as f: data = json.load(f)
3. Excelファイルの作成
OpenPyXLライブラリを使用して、新しいExcelファイルを作成します。以下のコードを使用して、新しいExcelファイルを作成します。
from openpyxl import Workbook # 新しいExcelファイルの作成 workbook = Workbook() sheet = workbook.active
4. JSONデータの書き込み
JSONデータをExcelファイルに書き込むには、ループを使用してデータを書き込みます。以下のコードでは、各オブジェクトのname、age、およびcityの値をExcelファイルに書き込んでいます。
# JSONデータの書き込み # ヘッダーの書き込み header = ['name', 'age', 'city'] for col_num, column_title in enumerate(header, 1): sheet.cell(row=1, column=col_num, value=column_title) # データの書き込み for row_num, row_data in enumerate(data, 2): sheet.cell(row=row_num, column=1, value=row_data['name']) sheet.cell(row=row_num, column=2, value=row_data['age']) sheet.cell(row=row_num, column=3, value=row_data['city'])
最初に、headerという変数に、Excelファイルのヘッダーとして使用する文字列のリストを定義します。ここでは、name、age、およびcityという3つの列を定義しています。
次に、enumerate関数を使用して、headerリスト内の各文字列とその列番号を取得し、各列のヘッダーをExcelファイルの1行目に書き込みます。
その後、forループを使用して、JSONデータ内の各オブジェクトを読み込みます。ループの各イテレーションでは、現在のオブジェクト内のname、age、およびcityの値を取得し、Excelファイルの新しい行に書き込みます。enumerate関数の第2引数は、列番号を1から開始するために2に設定しています。また、cellメソッドを使用して、行と列のインデックスを指定して値をセルに書き込んでいます。
以上のステップを実行すると、OpenPyXLを使用してJSONデータをExcelファイルに変換できます。
5. 実際のデータとコードの実例
以下のJSONデータを使用して、実際にPythonプログラムを作成し、JSONデータをExcelファイルに変換します。
[ { "name": "John Smith", "age": 35, "city": "New York" }, { "name": "Jane Doe", "age": 28, "city": "Los Angeles" }, { "name": "Bob Johnson", "age": 45, "city": "Chicago" }]
以下は、Pythonプログラムのコードです。
import json from openpyxl import Workbook # JSONデータの読み込み with open('sample.json', 'r') as f: data = json.load(f) # 新しいExcelファイルの作成 workbook = Workbook() sheet = workbook.active # ヘッダーの書き込み sheet["A1"] = "Name" sheet["B1"] = "Age" sheet["C1"] = "City" # JSONデータの書き込み for i, item in enumerate(data, start=2): sheet.cell(row=i, column=1, value=item["name"]) sheet.cell(row=i, column=2, value=item["age"]) sheet.cell(row=i, column=3, value=item["city"]) # Excelファイルの保存 workbook.save(filename="sample.xlsx")
このプログラムでは、最初にjsonライブラリを使用して、JSONデータを読み込みました。次に、OpenPyXLライブラリを使用して新しいExcelファイルを作成し、sheetオブジェクトを取得しました。その後、ヘッダーを書き込み、ループを使用してJSONデータの各要素をExcelファイルに書き込みました。最後に、Excelファイルを保存しました。
6. OpenPyXLを利用する以外の方法
PythonのPandasライブラリを利用してもJSONデータをExcelに変換することができます。
7. ExcelからJSONデータへの変換
ExcelからJSONデータへの変換については下記の記事で紹介しています。
8. まとめ
以上で、JSONデータをExcelに変換するPythonプログラムが完成しました。OpenPyXLを使用することで、簡単にJSONデータをExcelに変換することができます。これらのプログラムはPythonの基本的な文法とライブラリで実装することができます。Pythonの基礎学習には下記のようなサイトの利用が有効です。