[jq] JSON を CSV に変換する

作成日: 2022年02月20日

@csv という書式を利用することで入力された値を CSV 形式で出力することができます。

まず、下記の内容をの dummy.json というファイルを作成します。

[
  {
    "name": "Tom",
    "age": 11
  },
  {
    "name": "Bob",
    "age": 22
  }
]

下記のようなコマンドを実行します。

cat dummy.json | jq -r '.[] | [.name, .age] | @csv'

実行結果は下記のとおりです。

"Tom",11
"Bob",22

説明

  • jq コマンドの -r オプションは出力結果をプレーンな文字列として出力します。@csv の書式で変換するときにダブルクォーテーションのエスケープが含まれないようにしています。
  • [.name, .age] では、JSON 形式のデータ構造を name プロパティ、age プロパティだけの配列に変換しています。CSV 形式のデータには各行にキーが存在しないため、ここで省略を行っています。
  • 最後に @csv 書式に渡すことで CSV 形式に変換されます。
jq