42
30

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

JSONをCSVに簡単に変換する方法

Last updated at Posted at 2020-04-21

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も不要なはず。
ネストが含まれている場合は、上記で解決できると思います。

42
30
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
42
30

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?