我有一个包含存储在一个变量对象列表的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