我有一個包含存儲在一個變量對象列表的JSON輸出值(我可以不措辭是正確的)Linux的grep命令找到鑰匙從JSON
輸出捲曲命令:將發表評論,因爲我無法發佈在這裏
我想grep在這個位置「ad6743fae9c54748b8644564c691ba58」在輸出中顯示的值,每當我運行curl命令時都會改變。我想把它作爲其他curl命令的輸入。
請幫
我有一個包含存儲在一個變量對象列表的JSON輸出值(我可以不措辭是正確的)Linux的grep命令找到鑰匙從JSON
輸出捲曲命令:將發表評論,因爲我無法發佈在這裏
我想grep在這個位置「ad6743fae9c54748b8644564c691ba58」在輸出中顯示的值,每當我運行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
得到的數據通過捲曲是爲 「$」 的名稱輸出。
「ad6743fae9c54748b8644564c691ba58」的位置被檢索爲「$ key」。
使用「$ key」輸出「ad6743fae9c54748b8644564c691ba58」的值。
例如,在該腳本中,當「ad6743fae9c54748b8644564c691ba58」的位置不變化,「ad6743fae9c54748b8644564c691ba58」可以改變爲「abcdefg1234567」。
使用jq
: 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"]
'{ 「目的地」:[ { 「ad6743fae9c54748b8644564c691ba58」:{ 「throttle_bytes_per_second」: 「0」, 「delete_this」:假, 「路徑」: 「s3testbucket」, 「server_side_encryption」:假, 「提供者」: 「S3」, 「access_key」: 「XXXXXXXXXXX」, 「access_secret」: 「XXXXXXXXXXXXXXXXXXXXX」 } } ], 「REQUEST_ID」: 「d6e089bb-9729-423b-8319-d441e0a72202」 }' – vr1111