jq で JSON ファイルからデータを読むときのメモ

この記事は 2023年 ゆるくすすめる ( ワンフットシーバス ) GWアドベントカレンダー の 3 日目の記事です。

jq で JSON ファイルからデータを読むときのメモです。

背景

jq の高速さと扱いやすさに最近あらためて感動しまして、1 万件とか大きめの JSON データも select で検索を回せたりといろいろ良い感じです。

ただ、私がまだ慣れてないせいもあって、事前に変数作って入れるようなサンプルを参考にしてしまって、たまに混乱してしまうことがあり、自分用にまとめておきます。

[
    {
      "type": "home",
      "number": "0203 544 1234"
    },
    {
      "type": "office",
      "number": "01962 001234"
    },
    {
      "type": "office",
      "number": "01962 001235"
    },
    {
      "type": "mobile",
      "number": "077 7700 1234"
    }
]

これが sample.json としてある場合に、

jq '.[].number' sample.json

と、 1 番目のパラメータに select など検索するオプションを入れつつ 2 番目のパラメータにファイルパスを指定します。

"0203 544 1234"
"01962 001234"
"01962 001235"
"077 7700 1234"

今回の結果だと number の値が羅列されます。

最近は API で大量にデータを集めたあと、またその API で何度も取得するのは制限を越えてしまいかねないので、結果をファイル保存して、以降はその JSON を見て集計や計算をするといったことで使っています。

参考文献として とほほのjq入門 – とほほのWWW入門 が、めちゃくちゃ網羅されててとても参考になりました。