web-dev-qa-db-ja.com

bashでjsonを解析するためのdebian wheezyのjqの代替

Ubuntuでは、単純に jq をインストールできます。

apt-get install jq 

しかし、Debianではリポジトリにありません。

コンソールでJSON文字列を解析する代替コマンドラインはありますか?

python(fantasycode)のようにしてこれを達成できるかもしれません:

cat test.json | python 'parse_json(stdin)'
6
rubo77

1つのCLI jsonパーサーは jshon です。以下に簡単な例を示します。

$ jshon -e foo -u <<< '{ "foo":"bar" }' 
bar

-eオプションはjsonから値を抽出し、-uは最終的な文字列をデコードします。

2
jordanm

jqはWheezyバックポートにあり、ジェシーのために予定されています

Wheezyのバックポートの場合、/ etc/apt/sources.list(またはsources.d/???。listにファイル)に以下を追加します

deb http://http.debian.net/debian wheezy-backports main

次に:

apt-get -t wheezy-backports install jq

別の選択肢:

python -m json.tool file.json
5
Hvisage

jp は、Python library jmespath に基づいたjqの代替となるJSON解析CLIの1つです。依存するかなり堅固なツールです。 AWS cliのデフォルトのJSON解析ライブラリ )。

問題のライブラリは Debianで利用可能 のようですが、jp CLIインターフェースはそうではありません。

1
ejoubaud

jelloを作成しました。これにより、フィルターで純粋なpythonコードを使用できます。

$ jc -a | jello '[entry["name"] for entry in _["parsers"] if "darwin" in entry["compatible"]]'

[
  "airport",
  "airport_s",
  "arp",
  "crontab",
  "crontab_u",
  ...
]

https://github.com/kellyjonbrazil/jello

その他の例:

https://blog.kellybrazil.com/2020/03/25/jello-the-jq-alternative-for-pythonistas/

0
Kelly Brazil

fx ???? を見てください。

これは、スタンドアロンバイナリを備えたプレーンなJavaScript CLI JSON操作ツール(jqの代替)です。

program | fx 'input => input.filter(x => ...).map(x => {a: a.x})'
0
Anton Medvedev

jtc unixユーティリティも見てください。JSONクエリを大幅に達成することを目的としてjtcを開発しました。

  • 客観的に速い
  • (ほとんどの場合)解決策を簡単に得ることができます-試してみるまで主観的ですが
  • 基本コンセプトがわかりやすい
  • 通常、jtcイディオマティックソリューションは、入力データの省略に耐性があり、入力データの外部構造に対して不変です(長いウォーキングJSON要素が同じ関係を維持するため)
0
Dmitry