我正在尝试使用jq从此端点获取某些信息
curl -s https://bittrex.com/api/v1.1/public/getmarketsummaries/ | jq '[.]'
和下面的输出
[ { "success": true, "message": "", "result": [ { "MarketName": "BTC-1ST", "High": 0.00010322, "Low": 9.32e-05, "Volume": 1475820.53114847, "Last": 9.414e-05, "BaseVolume": 145.89904728, "TimeStamp": "2017-10-05T00:32:45.283", "Bid": 9.415e-05, "Ask": 9.521e-05, "OpenBuyOrders": 614, "OpenSellOrders": 5887, "PrevDay": 0.00010169, "Created": "2017-06-06T01:22:35.727" }, { "MarketName": "BTC-2GIVE", "High": 1.31e-06, "Low": 1.24e-06, "Volume": 4356547.69360079, "Last": 1.29e-06, "BaseVolume": 5.59000303, "TimeStamp": "2017-10-05T00:21:46.333", "Bid": 1.29e-06, "Ask": 1.31e-06, "OpenBuyOrders": 298, "OpenSellOrders": 2290, "PrevDay": 1.29e-06, "Created": "2016-05-16T06:44:15.287" }, { "MarketName": "BTC-ABY", "High": 1.89e-06, "Low": 1.62e-06, "Volume": 31422008.3611497, "Last": 1.68e-06, "BaseVolume": 53.99330434, "TimeStamp": "2017-10-05T00:25:21.307", "Bid": 1.68e-06, "Ask": 1.7e-06, "OpenBuyOrders": 437, "OpenSellOrders": 4761, "PrevDay": 1.63e-06, "Created": "2014-10-31T01:43:25.743" }
当我尝试只获得MarketName
curl -s https://bittrex.com/api/v1.1/public/getmarketsummaries/ | jq '.[] | select(.MarketName=="BTC-1ST")'
我收到以下错误
jq: error (at <stdin>:0): Cannot index boolean with string "MarketName"
其他错误
curl -s https://bittrex.com/api/v1.1/public/getmarketsummaries/ | jq '.[1]'
我明白了
jq: error (at <stdin>:0): Cannot index object with number
任何人都知道正确的命令来获得这些?
如果您希望{}中与marketName匹配的所有内容都可以
$ curl -s https://bittrex.com/api/v1.1/public/getmarketsummaries/ | jq '.result[] | select(.MarketName=="BTC-1ST")' { "MarketName": "BTC-1ST", "High": 0.00010322, "Low": 8.402e-05, "Volume": 1820113.98502106, "Last": 8.799e-05, "BaseVolume": 175.00575508, "TimeStamp": "2017-10-05T03:40:26.463", "Bid": 8.799e-05, "Ask": 8.817e-05, "OpenBuyOrders": 329, "OpenSellOrders": 6316, "PrevDay": 0.00010101, "Created": "2017-06-06T01:22:35.727" }
如果你想列出所有的MarketNames你可以做
$ curl -s https://bittrex.com/api/v1.1/public/getmarketsummaries/ | jq '.result[].MarketName' "BTC-1ST" "BTC-2GIVE" "BTC-ABY" ....
也必须编程语言的名单从0开始..所以,如果我想在jq我得到列表中的第一项我可以做
jq '.[0]'
只有一个列表项目,所以这就是为什么你得到一个错误,如果你使用[1]