如何在变量有句点时使用jq

时间:2016-05-04 04:20:16

标签: key special-characters jq

我试图让以下工作&它没有,请帮助我:

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"
},
....

2 个答案:

答案 0 :(得分:12)

当密钥包含对标识符无效的字符时,您必须引用该名称。

."OPEN.BTC"

或者对于旧版本的jq,请使用索引。

.["OPEN.BTC"]

答案 1 :(得分:3)

另一个答案对我不起作用,但是@jeff-mercado所写的评论对我有用。因此,在此处将其添加为答案。

如果您的密钥上有像“ OPEN.BTC”这样的点,那么您的jq命令应该是

curl -s 'https://cryptofresh.com/api/asset/markets?asset=MKR' | jq '."OPEN.BTC"'

首先将密钥置于双引号中,然后通过使用单引号将其引起来来避开第一个点。