以下の内容はhttps://nikkie-ftnext.hatenablog.com/entry/jq-jsonlines-to-tsv-csvより取得しました。


JSON LinesをjqでTSV(またはCSV)に変換する

はじめに

七尾百合子さん、お誕生日 71日目 おめでとうございます! nikkieです。

jqを使い始めて数年。ついに理解しました。

目次

JSON LinesをjqでTSVに変換

idol.jsonl

{"name": "エミリー スチュアート", "description": "・・・お、お喋りは大和撫子らしくありませんよね?"}
{"name": "田中 琴葉", "description": "レッスンでも営業でも、準備は万端です。"}

見なよ... 俺のTSVを...

% jq -r '[.name, .description] | @tsv' idol.jsonl
エミリー スチュアート   ・・・お、お喋りは大和撫子らしくありませんよね?
田中 琴葉       レッスンでも営業でも、準備は万端です。

配列を作ってフォーマット指定

やっていることは2つです

配列を作る

JSON Linesの各行を配列にします。
[]が配列リテラルです。
要素にJSONのキーを指定し、対応する値が入っています

% jq -c '[.name, .description]' idol.jsonl
["エミリー スチュアート","・・・お、お喋りは大和撫子らしくありませんよね?"]
["田中 琴葉","レッスンでも営業でも、準備は万端です。"]

TSVフォーマットを指定

@tsvでフォーマット指定。
配列に適用できます。
-rをつけないと、文字列を示すダブルクォートが付きます。

% jq '[.name, .description] | @tsv' idol.jsonl
"エミリー スチュアート\t・・・お、お喋りは大和撫子らしくありませんよね?"
"田中 琴葉\tレッスンでも営業でも、準備は万端です。"

CSVの場合

@csvもあります

% jq -r '[.name, .description] | @csv' idol.jsonl
"エミリー スチュアート","・・・お、お喋りは大和撫子らしくありませんよね?"
"田中 琴葉","レッスンでも営業でも、準備は万端です。"

終わりに

jqでは配列を作り、フォーマット指定することで、JSON LinesをTSVやCSVに変換できます!
LLMに何度か出力してもらい、このたび書籍にあたって理解・会得しました。

これまではPythonを書いていましたが、理解したことでjqコマンド一発でできるようになりました。
jqを学ぼうと思った目論見通り🙌

登場したアイドルちゃん宣伝コーナーです

jq関連過去記事




以上の内容はhttps://nikkie-ftnext.hatenablog.com/entry/jq-jsonlines-to-tsv-csvより取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14