这个 curl 输入将从 Binance 的 API 输出一份买卖价清单:
curl https://api.binance.com/api/v1/depth?symbol=ETHUSDT | jq
但是有没有办法计算所有这些要价和出价的总和,以便输出如下:
Total asks: 1023411 USD
Total bids: 1002112 USD
答案1
虽然不是最短的版本,但这个 jq 脚本可以完成这项工作:
{asks, bids} | to_entries
| .[]
| . as {key: $kind, value: $data}
| $data
| map({price: .[0] | tonumber, qty: .[1] | tonumber})
| map(.price * .qty)
| add
| "Total \($kind): \(. * 100 | round / 100) USD"
以jq -r -f filename.jq
或身份运行jq -r '{asks, bids} | .....'
请注意,jq 的精度限制为 IEEE 754“双精度”。
(而且看起来 API 默认只返回最多 100 个项目(最多 1000 个),所以这可能不是正确的数字。查看文档。)