JSONをCSVにpythonで変換する
JSONファイル
キーの中に、jsonの配列がある形にします(jsonlではない)。
以下ではdataというキーの値にjsonの配列が入る形としている。
配列になってない場合は、配列になるように修正する。あとで加工しやすくするため。
target.json
{"data":[{"code":"001","address":{"Pref":"TOKYO","postalCode":"1230021"}},
{"code":"002","address":{"Pref":"FUKUOKA","postalCode":"8140004"}}]}
スクリプト
pandas.py
# coding:utf-8
#Pandasをインポート
import pandas as pd
import json
from pandas.io.json import json_normalize
#変換したいJSONファイルを読み込む
df = pd.read_json('target.json')
print(df)
# read_jsonした結果だとネストしたjsonを展開できないのでnormalizeで展開させる
df_json = json_normalize(df['data'])
df_json.to_csv("out.csv", encoding='utf-8')
実行
terminal
python pandas.py
出力されるCSV
out.csv
,address.Pref,address.postalCode,code
0,TOKYO,1230021,001
1,FUKUOKA,8140004,002
ネストしていないシンプルなJSONであれば、json_normalizeも不要なはず。
ネストが含まれている場合は、上記で解決できると思います。