Pythonプログラムを使用してJSONデータをExcelに変換する方法(OpenPyXL)

JSONJavaScript Object Notation)は、現在、Web上のデータ交換において広く使用されている形式です。一方、Excelは、表形式のデータを扱う上で非常に便利なツールであるため、JSONデータをExcel形式に変換することは非常に便利です。この記事では、PythonのOpenPyXLライブラリを使用してJSONデータをExcelに変換する方法を紹介します。

1. 必要なライブラリのインストール

PythonのOpenPyXLライブラリを使用してJSONデータをExcelに変換するために、最初に必要なライブラリをインストールします。以下のコマンドを使用してOpenPyXLをインストールします。

pip install openpyxl

pydocument.hatenablog.com

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に変換することができます。

pydocument.hatenablog.com

7. ExcelからJSONデータへの変換

ExcelからJSONデータへの変換については下記の記事で紹介しています。

pydocument.hatenablog.com

8. まとめ

以上で、JSONデータをExcelに変換するPythonプログラムが完成しました。OpenPyXLを使用することで、簡単にJSONデータをExcelに変換することができます。これらのプログラムはPythonの基本的な文法とライブラリで実装することができます。Pythonの基礎学習には下記のようなサイトの利用が有効です。

click.linksynergy.com

click.linksynergy.com

click.linksynergy.com