Eu tenho este roteiro:
curl -sX 'GET' \
'https://api.coingecko.com/api/v3/exchange_rates' \
-H 'accept: application/json' | jq -rc '.[]|select(.)|keys,(.[].value|tostring)'
e a fonte do JSON é:
{
"rates": {
"btc": {
"name": "Bitcoin",
"unit": "BTC",
"value": 1,
"type": "crypto"
},
"eth": {
"name": "Ether",
"unit": "ETH",
"value": 14.327,
"type": "crypto"
}, ...
Não consigo fazer pares chave (id da moeda, "btc")-valor (valor da moeda, "1"), o que preciso é o id da moeda e seu valor:
btc 1
eth 14.327
Como posso fazer essas duas matrizes separadas como uma?
Você pode obter pares usando o
to_entries
filtro. Ele transformará o dict em uma matriz de itens:Depois de ter essas entradas, você pode acessar
.key
e.value.value
de cada item para obter os pares que deseja:O mesmo para transformá-los em uma string:
Observe que o que
select(.)
você tinha antes parece completamente redundante ...