jqでJSON Lines(*.jsonl)

JSON Linesなるフォーマットがあることを知りました。

ちょろっと見るときには1レコード1行で見たい

jqコマンドでJSONをJSONL(JSON Lines)に変換する – rochefort’s blog

上のブログに JSON整形式をJSONLines に変換する方法が書いてあります。

逆の変換もGoogleって見つけました。jq –help では “JSON Line”って出てこないのでこれ見つけるのにかなり回り道してしまいました。

以下実行例です。以下のデータを使ってみます。

‘{“items”:[{“item_id”:1,”name”:”すてきな雑貨”,

jq コマンドを使う日常のご紹介 – Qiita

上のページでのJSONデータは “items” が配列ですがまずはこれを削ったJSON Linesデータを変数に入れます。

$ jsonlinedata='
> {"item_id":1,"name":"すてきな雑貨","price":2500}
> {"item_id":2,"name":"格好いい置物","price":4500}
> {"item_id":3,"name":"ナイスなお皿","price":4500}'

行数を確認します。

$ wc -l <<< $jsonlinedata
4

jq で JSON Lines –> JSON 変換します。

$ jq --slurp . <<< $jsonlinedata
[
  {
    "item_id": 1,
    "name": "すてきな雑貨",
    "price": 2500
  },
  {
    "item_id": 2,
    "name": "格好いい置物",
    "price": 4500
  },
  {
    "item_id": 3,
    "name": "ナイスなお皿",
    "price": 4500
  }
]

–slurp の替わりに –s でも良いです。

One thought on “jqでJSON Lines(*.jsonl)

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s