今週学んだ事(APIからCSV)

APIからCSV

curlコマンドAPIを叩く

curl [URL]なので例として➀を実行

curl "http://zipcloud.ibsnet.co.jp/api/search?zipcode=7830060"

f:id:mkyosuke:20200313174550p:plain

jqコマンド

JSON用コマンドでデータのフィルタや置き換え、整形ができる

resultsのみを取得してみる

jq .resultsで指定

先程のcurlコマンドとjqコマンドをパイプで繋げて➁を実行

curl "http://zipcloud.ibsnet.co.jp/api/search?zipcode=7830060" | jq .results

f:id:mkyosuke:20200313175232p:plain

さらにその結果jqコマンドでcsv形式にする

jq -r '<CSV 形式で出力したい要素を取り出すフィルター> | @csv'

jq -r '. | [.address1, .address2, .address3, .kana1, .kana2, .kana3, .prefcode, .zipcode] | @csv'

先程の➁とつなげると➂になり、実行

curl "http://zipcloud.ibsnet.co.jp/api/search?zipcode=7830060" | jq .results | jq -r '. | [.address1, .address2, .address3, .kana1, .kana2, .kana3, .prefcode, .zipcode] | @csv'

f:id:mkyosuke:20200313180447p:plain

➂を実行すると、csv形式になりました。

最後、その結果をファイルにリダイレクション➃を実行

curl "http://zipcloud.ibsnet.co.jp/api/search?zipcode=7830060" | jq .results | jq -r '.[] | [.address1, .address2, .address3, .kana1, .kana2, .kana3, .prefcode, .zipcode] | @csv' >>test1.csv

f:id:mkyosuke:20200313180752p:plain

➄cat コマンドで確認

f:id:mkyosuke:20200313180921p:plain