オンラインなどのフリーツールでjsonからCSVへの変換はできるかと思いますが、扱っている情報によっては手元で変換したい場合があると思います。
今回はめちゃくちゃ便利なjq
コマンドを用いて対応してみます。
jqコマンド
jqコマンドはコマンドラインでJSONを扱える便利ツールです。
めちゃくちゃ便利なため是非お手元にインストールしてみてください...!!
homebrewなどあればインストールはこちらです。
$ brew install jq
Ubuntuであればaptでインストールできます。
$ sudo apt install -y jq
整形してみる
それではjq
コマンドを用いて整形してみましょう。
サンプルにCoronavirs Trackerを利用してみます。
※Coronavirs Trackerは、世界中のCOVID-19の感染状況の数字をテキストで表示してくれるサービスになります。
$ curl https://corona-stats.online/
こんな感じで表示されます。
このサービスはJSONファイル出力もapiとして提供しております。
以下コマンドでjsonを出力してみてください。
$ curl https://corona-stats.online/?format=json -o sample.json
これでカレントディレクトリにsample.jsonができました。
そして肝心のcsv変換コマンドは以下となります。
$ cat sample.json | jq -r '.data[]|[.country, .cases, .todayCases, .deaths, .todayDeaths, .recovered, .active, .critical, .casesPerOneMillion, .deathsPerOneMillion, .tests, .testsPerOneMillion, .confirmed, .countryCode]|@csv'
CSVに変換されました。
複数に入ってる