はじめに
七尾百合子さん、お誕生日 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を学ぼうと思った目論見通り🙌
登場したアイドルちゃん宣伝コーナーです