Я пытаюсь использовать 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"
....
Также необходимо программировать landuages, списки начинаются с 0 .. поэтому, если я хочу получить первый элемент в списке в jq, я могу сделать
jq '.[0]'
В списке всего 1 элемент, поэтому вы получите сообщение об ошибке, если используете [1]