タグ

jsonとjqに関するmanabouのブックマーク (8)

  • jqのGo実装 gojq を作りました! ― スタックマシン型インタープリタによるイテレータセマンティクスの実装 - プログラムモグモグ

    jqはとても便利なコマンドです。 JSONを返すAPIを実装するときや、SaaSのAPIから特定の情報を抜き出してシェル変数に代入するときなど、web開発や運用には欠かせないツールとなっています。 しかし、私にとってjqのクエリを一発で書くのは容易ではなく、思い通りの出力が得られないことがよくありました。 難しいエラーメッセージに悩まされて、jqで書くのを諦めて別の言語で書き直すこともありました。 jqの十八番と思える場面で使いこなせないのは、なかなか悔しいものがあります。 ツールを使うのが難しいなら、同じものを作ってしまえばよいのです。 jqの全ての機能を実装する jqを言語としてきちんと書けるようになる jqを完全に理解する jqの全ての機能を自分で実装してしまえば、jqがどういうものか、クエリがどのように処理されるのか、詳しくなれるはずです。 jqを得意な言語と言えるようになって、ク

    jqのGo実装 gojq を作りました! ― スタックマシン型インタープリタによるイテレータセマンティクスの実装 - プログラムモグモグ
  • 構造化テキストデータを操作するためのコマンドラインツールリスト | POSTD

    テキストベースのファイル形式と、それぞれを(主にLinux上で)操作するためのコマンドラインツールのリストを掲載しています。 目次 DSV XML,HTML JSON YAML,TOML INI 設定ファイル おまけ:単一ファイルデータベース用コマンドラインインタフェース(CLI) ライセンス 情報開示 DSV CSV や TSV などを含む DSV(Delimiter-separated values、区切り文字で区切られた値) です。 Awk AwkはPOSIXで標準化されているコマンドラインツールで、DSVデータ処理用プログラミング言語です。Awkに関するリンクは以下のとおりです。 Awk.info — Awkに関する情報が豊富です。 AWK Vs NAWK Vs GAWK —プラットフォーム別実装の比較です。 すでにプログラミング言語を使用してプログラミングをしている場合は、naw

    構造化テキストデータを操作するためのコマンドラインツールリスト | POSTD
  • Big Sky :: コマンドラインから JSON が簡単に作れるツール jo

    « golang で画像アップロードが簡単に出来る go-imageupload を使ってみた。 | Main | SQLite3でカジュアルにズンドコキヨシ » コマンドラインから JSON を扱うツールとしては jq が一般的ですが、例えば ls を実行した結果を JSON の Array にしたいであったり、コマンドライン引数から簡単に Object を作りたいといった場合には一旦考え込まないといけないくらい使い方が難しかったりします。そんな中でひょいと現れたのが jo です。 GitHub - jpmens/jo: JSON output from a shell JSON output from a shell https://github.com/jpmens/jo 作者である jpmens さんがなぜ jo を作るに至ったかをブログに書いています。 Jan-Piet Mens

    Big Sky :: コマンドラインから JSON が簡単に作れるツール jo
  • jqを活用してAPIレスポンスから欲しい情報を抽出する【上級編】 | DevelopersIO

    よく訓練されたアップル信者、都元です。引き続きjqのお話。日は上級編です。 まずおさらいの意味も込めて下記は、ざっと読んでおいて頂けると。 jqを活用してAPIレスポンス等から欲しい情報だけを抽出する【初級編】 jqを活用してAPIレスポンス等から欲しい情報だけを抽出する【中級編】 前回の練習問題の答え さて、まず前回の練習問題の答えをさらっと。1つ目の解答例は下記の通りです。「どっと・ふー・むきむき」と読んでください。 $ cat example.json | jq '.foo[][]' 2つ目の解答例はこんな感じでしょうか。 $ cat example.json | jq '[.foo[][] | {(.key): .value}] | add' jqにおける関数 さて。 ある値をから別の値を作る操作のことを関数(function)と呼びます。例えば今まで見てきたjqのクエリはそれぞ

    jqを活用してAPIレスポンスから欲しい情報を抽出する【上級編】 | DevelopersIO
  • 【Tips】jqが入ってなくてもjsonをpythonで見やすくする方法 | DevelopersIO

    サーモン大好き、横山です。 jsonを見るときに、大活躍するjqですが、「入れたと思ったサーバに実は入ってなかった!」という経験があるんじゃないでしょうか? Amazon Linuxの場合ですと、 $ sudo yum install -y jq のコマンドを叩けばインストールできますが、今回は敢えてjqがなかった場合の方法をご紹介いたします。 この記事はjqの使用を抑制するような記事ではございません jsonを取得する 今回は OpenWeatherMapAPIを使い、東京の天気の情報をjsonで取得します。 $ curl -s "http://api.openweathermap.org/data/2.5/weather?q=Tokyo,jp" {"coord":{"lon":139.69,"lat":35.69},"sys":{"message":0.0179,"country"

    【Tips】jqが入ってなくてもjsonをpythonで見やすくする方法 | DevelopersIO
  • jqを活用してAPIレスポンス等から欲しい情報だけを抽出する【中級編】 | DevelopersIO

    よく訓練されたアップル信者、都元です。引き続きjqのお話。日は中級編です。 日のお題は、このような入力値 example.json を利用します。 { "foo": { "bar": [ { "key": "1-key", "value": "1-value" }, { "key": "2-key", "value": "2-value", "option": "2-opt" } ], "baz": [ { "key": "3-key", "value": "3-value", "option": "3-opt" }, { "key": "4-key", "value": "4-value" } ] } } 配列の皮むきとオブジェクトの皮むき 初級編では「配列の展開」として.[]という記述を解説しました。 $ cat example.json | jq '.foo.bar' [ { "

    jqを活用してAPIレスポンス等から欲しい情報だけを抽出する【中級編】 | DevelopersIO
  • jqコマンドが実は高性能すぎてビビッた話

    GWが始まりましたが、鎌倉のGWは観光客多すぎて逆に住民はげんなりして外に出なくなる感じです。とはいえ路地まで観光客が攻め込んでくることは少ないので、路地を散歩する分には天気がよくていい感じですね。ちなみに人力車のおにーさんはそういう味のある路地を知り尽くしているので人力車で移動するのはそこそこオススメです(ぼくは乗ったことないけど「こんなところも通るんだ!」ってところで見かけたりします)。 さて、jqというコマンドをご存じでしょうか。 jq jq is a lightweight and flexible command-line JSON processor. と書いてあるとおり、コマンドラインでJSONを扱うことができるコマンドです。で、今まさに仕事で巨大JSONと戦うことが多く、このコマンドが大活躍です。 とはいえ、ぼくの使い方としては「巨大JSONをキレイに整形して表示する」とい

    jqコマンドが実は高性能すぎてビビッた話
  • 1