我正在尝试让以下内容起作用,但事实并非如此,请帮助我:
curl -s 'https://cryptofresh.com/api/asset/markets?asset=MKR' | jq .OPEN.BTC
有问题的变量包含一个句点,我尝试了几乎所有方法来转义句点 && 还尝试将其用引号引起来;不去;这是我想要从中提取的变量(我在没有任何过滤器的情况下运行了 jq,并截断了此处的输出以显示我需要的内容。提前感谢未来的问题解决者!
curl -s 'https://cryptofresh.com/api/asset/markets?asset=MKR' | jq
....
"OPEN.BTC": {
"volume24": 0.932166,
"price": 0.09995,
"updated": "2016-05-04T03:03:29.000Z"
},
....
当键包含对标识符无效的字符时,您必须用引号引起来的名称。
."OPEN.BTC"
或者对于旧版本的 jq,请使用索引。
.["OPEN.BTC"]
... | jq '."OPEN.BTC"'
另一个答案对我不起作用,但@jeff-mercado写的评论对我有用。因此,将其添加为此处的答案。
如果您的密钥有“OPEN.BTC”之类的点,那么您的
jq
命令应该是
curl -s 'https://cryptofresh.com/api/asset/markets?asset=MKR' | jq '."OPEN.BTC"'
将密钥放在双引号中,然后使用单引号将第一个点转义。
这些对我来说都不起作用,因为相关字段称为“结束”。 唯一的方法是将“结束”一词替换为其他内容,例如使用 sed EndIt - 然后使用 EndIt 作为 jq 解析的字段。