Pythonを使ってJSON形式のデータをCSV形式に変換することを仕事で最近行ったので、忘備録用に方法をまとめようと思います。
目次
必要なライブラリについて
まず、JSONデータをCSVに変換するために必要なライブラリを最初にインポートします。
import json
import csv
-
json
: JSONデータを処理するための標準ライブラリ -
csv
: CSVファイルを操作するための標準ライブラリ
JSONデータを用意する
次に、変換対象のJSONデータを用意します。
以下の例では、簡単なJSONデータを使用します。
[
{"id": 1, "name": "Taro", "age": 25},
{"id": 2, "name": "Kyoko", "age": 30},
{"id": 3, "name": "Hanako", "age": 35}
]
このデータは、3つのオブジェクトを含むリストです。それぞれのオブジェクトには、id
、name
、age
というフィールドがあります。
JSONデータをCSVに変換する
次に、Pythonコードを使ってJSONデータをCSVに変換します。
以下にコーディング例を記載します。
# JSONデータの読み込み(ファイルから読み込む場合)
with open('data.json', 'r') as json_file:
data = json.load(json_file)
# CSVファイルに書き込む
with open('data.csv', 'w', newline='') as csv_file:
writer = csv.DictWriter(csv_file, fieldnames=["id", "name", "age"])
writer.writeheader() # ヘッダーを書き込む
writer.writerows(data) # データを書き込む
説明
-
JSONの読み込み
json.load()
を使用して、JSONファイルを読み込みます。ここではdata.json
というファイル名のJSONデータを読み込んでいます。 -
CSVファイルの作成
csv.DictWriter
を使ってCSVファイルにデータを書き込みます。fieldnames
で列名(フィールド名)を指定します。 -
ヘッダーの書き込み
writeheader()
メソッドを使って、CSVファイルの最初に列名を追加します。 -
データの書き込み
writerows()
を使って、JSONデータをCSVファイルに書き込みます。
完成したCSVファイル
上記のコードを実行した後、data.csv
というファイルが作成され、内容は次のようになります。
id,name,age
1,Taro,25
2,Kyoko,30
3,Hanako,35
エラーハンドリング
JSONファイルの読み込みや書き込み処理でエラーが発生する可能性があります。簡単なエラーハンドリングを追加して、処理を安全に行うことができます。
try:
with open('data.json', 'r') as json_file:
data = json.load(json_file)
with open('data.csv', 'w', newline='') as csv_file:
writer = csv.DictWriter(csv_file, fieldnames=["id", "name", "age"])
writer.writeheader()
writer.writerows(data)
print("変換が成功しました!")
except FileNotFoundError:
print("JSONファイルが見つかりません。")
except json.JSONDecodeError:
print("JSONのデコードに失敗しました。")
except Exception as e:
print(f"エラーが発生しました: {e}")
このようにすることで、ファイルが見つからない場合やJSONの構文エラーが発生した場合でも、エラーメッセージを表示できます。
結論
Pythonを使ってJSONデータをCSVファイルに変換する方法は非常に簡単です。標準ライブラリjson
とcsv
を使用することで、数行のコードで変換処理を行うことができます。データ分析や可視化ツールで使用する際に、JSONからCSVに変換して活用することができます。