簡體   English   中英

Linux grep命令從json中查找鍵的值

[英]Linux grep command to find the value of key from json

我有一個JSON輸出,其中包含存儲在變量中的對象列表。(我可能沒有這樣的措辭)

curl命令的輸出:將發表評論,因為我無法在此處發布

我想對輸出中顯示的位置“ ad6743fae9c54748b8644564c691ba58”處的值進行grep設置,每次運行curl命令時該值都會更改。 我希望將其作為其他curl命令的輸入。

請幫忙

為此,必須使用“ jq” https://stedolan.github.io/jq/download/ 如果對於“ ad6743fae9c54748b8644564c691ba58”本身每次都更改,那么跟隨腳本怎么辦?

of="data.json" && curl ..... -o $of > $of && key=$(cat $of | jq -r '.destination[0]|keys' | jq -r '.[]') && jq -r ".destination[0].$key" $of && unset key of
  • 通過curl獲得的數據作為“ $ of”的名稱輸出。

  • 檢索“ ad6743fae9c54748b8644564c691ba58”的位置作為“ $ key”。

  • 使用“ $ key”輸出“ ad6743fae9c54748b8644564c691ba58”的值。

例如,在此腳本中,當“ ad6743fae9c54748b8644564c691ba58”的位置未更改時,“ ad6743fae9c54748b8644564c691ba58”可更改為“ abcdefg1234567”。

使用jqcurl 'http://.../some.json' | jq .destination[0].ad6743fae9c54748b8644564c691ba58 curl 'http://.../some.json' | jq .destination[0].ad6743fae9c54748b8644564c691ba58

像這樣?:

 #!/usr/bin/env python #coding:utf-8 import sys import json aa = '''{ "destination": [ { "ad6743fae9c54748b8644564c691ba58": { "throttle_bytes_per_second": "0", "delete_this": false, "path": "s3testbucket", "server_side_encryption": false, "provider": "s3", "access_key": "XXXXXXXXXXX", "access_secret": "XXXXXXXXXXXXXXXXXXXXX" } } ], "request_id": "d6e089bb-9729-423b-8319-d441e0a72202" }''' # aa=sys.argv[1] bb = json.loads(aa) print bb["request_id"] 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM