ものづくりのブログ

うちのネコを題材にしたものづくりができたらいいなと思っていろいろ奮闘してます。

python で json -> csv 変換

python を使って json から csv に変換させたい場合のメモをここに残します。

データ

入力データ(json)

入力データは以下のものを想定してます。

{
  "template": [
    {
      "path": {{path}},
      "accountId": {{accountId}},
      "templateData":{{templateData}}
    },
    {
      "path": {{path}},
      "accountId": {{accountId}},
      "templateData":{{templateData}}
    }
  ]
}

出力データ(csv)

出力イメージは以下の通りです。

,template
0,"{'path': '{{path}}', 'accountId': '{{accountId}}', 'templateData': '{{templateData}}'}"
1,"{'path': '{{path}}', 'accountId': '{{accountId}}', 'templateData': '{{templateData}}'}"

プログラム

python のコードは以下ようになります。

import argparse
import pandas as pd
import traceback

if __name__ == '__main__':
    parser = argparse.ArgumentParser(
        formatter_class = argparse.ArgumentDefaultsHelpFormatter
    )
    parser.add_argument(
        '--injson', 
        help = 'input json file', 
        required=True
    )
    parser.add_argument(
        '--outcsv', 
        help='output csv file', 
        required=True
    )
    args = parser.parse_args()
    try:
        df = pd.read_json(args.injson, encoding='utf_8')
        df.to_csv(args.outcsv, encoding='utf_8') 
    except Exception as e:
        print (traceback.format_exc())
        sys.exit(1)