这是我从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
}
}
]
}
这是我运行的命令:
curl -s 'https://api.myawesomeapidata.com' | jq -r '.observations[].winddir, .observations[].humidity, .observations[].imperial.temp'
这是输出:
292
92
20
这是我想要的输出:
Wind Direction: 292
Humidity: 92
Temperature: 20
但如果这是输出,我会很好:
winddir: 292
humidity: 92
temp: 20
正如您所看到的,我希望密钥出现在值的前面。最好允许我在打印前更改密钥的名称(Wind Direction(,但我也可以使用原始密钥名称(winddir(。
尝试使用字符串插值
… | jq -r '.observations[]
| "Wind Direction: (.winddir)"
, "Humidity: (.humidity)"
, "Temperature: (.imperial.temp)"
'
Wind Direction: 292
Humidity: 92
Temperature: 20
演示
然而,您可以通过使用来保留原始密钥名称
jq -r '.observations[] | {winddir},{humidity},(.imperial| {temp})| "(keys[]) : (.[])"'
这导致
winddir : 292
humidity : 92
temp : 20
演示