はじめに
今回は「jqコマンドでjsonをcsvファイルに出力する方法」を紹介します
前提
あらかじめjqライブラリをインストールしておいてください
Macでbrewが入っている場合は以下でインストールできます
brew install jq
jqコマンドでjsonをcsvファイルに変換・出力する方法
各json構造に対応したサンプルコマンドを以下に記載しますので、参考にしてみてください
JSONオブジェクト
JSON内容
{
"name": "ichiro",
"age": 20
}
サンプルコマンド
curl "http://localhost:8080/sample1" | jq -r '["name","age"], (.[] | [.name,.age]) | @csv' > sample1.csv
出力されたCSV
JSON配列
JSON内容
[
{
"name": "ichiro",
"age": 20
},
{
"name": "jiro",
"age": 18
},
{
"name": "saburo",
"age": 16
}
]
サンプルコマンド
curl "http://localhost:8080/sample2" | jq -r '["name","age"], (.[] | [.name,.age]) | @csv' > sample2.csv
出力されたCSV
ネストがあるJSON配列
JSON内容
[
{
"name": "ichiro",
"age": 25,
"jobs": [
{
"main": "engineer",
"side": "writer"
}
]
},
{
"name": "jiro",
"age": 24,
"jobs": [
{
"main": "designer",
"side": "uber eats"
}
]
},
{
"name": "saburo",
"age": 23,
"jobs": [
{
"main": "student",
"side": "part time"
}
]
}
]
サンプルコマンド
curl "http://localhost:8080/sample3" | jq -r '["name","age","jobs_main","jobs_side"], (.[] | {name,age,jobs:.jobs[]} | [.name,.age,.jobs.main,.jobs.side])| @csv' > sample3.csv
出力されたCSV
👍 🎉
コメント