tech

テックカテゴリー

コマンドラインでJSONをCSVに変換する

Category | server

Tag | Linux / shell

Author | naohito-T

Post | 2022-12-19 / 34,254views

jqコマンドを用いたCSV変換Tips

オンラインなどのフリーツールで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に変換されました。

複数に入ってる

Share this article

naohito-T

naohito-T

千葉出身。都内(銀座)での美容師経験があるソフトウェアエンジニア。モデル撮影のために購入したmacを使っていたらPCの仕組みが気になり始め、気づいたらエンジニアに。人生まるごとクリエイティブだと思っている。人の髪をデザインしていた経験をIT業界へ活かせることはないか日々模索中。