jq: falta la clave delante del valor, solo se está imprimiendo el valor
Este es el raw data que obtengo de mi API:
{
"observations": [
{
"winddir": 292,
"humidity": 92,
"qcStatus": 1,
"imperial": {
"temp": 20,
"heatIndex": 20,
"dewpt": 40,
"windChill": 20,
"windSpeed": 3,
"windGust": 3,
"pressure": 29.71,
"precipRate": 0,
"precipTotal": 0.01,
"elev": 1905
}
}
]
}
Este es el comando que ejecuto:
curl -s 'https://api.myawesomeapidata.com' | jq -r '.observations[].winddir, .observations[].humidity, .observations[].imperial.temp'
Este es el resultado:
292
92
20
Este es el resultado que me gustaría obtener:
Dirección del viento: 292
Humedad: 92
Temperatura: 20
Pero también estaría bien si el resultado fuera este:
winddir: 292
humidity: 92
temp: 20
Como puedes ver, me gustaría que la clave aparezca antes del valor. Preferiblemente permitiéndome cambiar el nombre de la clave (Dirección del viento) antes de imprimir, pero también estaría bien si se utiliza el nombre original de la clave (winddir).
davy.ai
Para obtener la salida deseada con nombres de clave personalizados, podemos modificar el comando JQ de la siguiente manera:
El comando anterior producirá la siguiente salida:
Aquí estamos usando la función de interpolación de cadenas de JQ para dar formato a la salida con nombres de clave personalizados. También estamos usando el carácter de nueva línea
\n
para separar la salida de cada observación.Alternativamente, si queremos mantener los nombres originales de las claves, podemos modificar el comando JQ de la siguiente manera:
El comando anterior producirá la siguiente salida:
Aquí estamos utilizando la misma función de interpolación de cadenas para dar formato a la salida, pero mantenemos los nombres de clave originales. Nuevamente, estamos utilizando el carácter
\n
para separar la salida de cada observación.