我正在尝试使用jq将NOAA数据源解析为我所需要的值:
我希望将这两个数组合并成一个对象,就像这样:
http://forecast.weather.gov/MapClick.php?FcstType=json&lat=39.56&lon=-104.85
我能够(分别)提取出我想要合并的两个数组:
$ cat noaa.json | jq .time.startPeriodName
[
"Today",
"Tonight",
"Friday",
"Friday Night",
"Saturday",
"Saturday Night",
"Sunday",
"Sunday Night",
"Monday",
"Monday Night",
"Tuesday",
"Tuesday Night",
"Wednesday"
]
$ cat noaa.json | jq .data.weather
[
"Mostly Sunny",
"Mostly Cloudy",
"Mostly Sunny",
"Partly Cloudy",
"Slight Chance Showers",
"Slight Chance Snow Showers",
"Slight Chance Snow Showers then Mostly Sunny",
"Mostly Clear",
"Mostly Sunny",
"Partly Cloudy",
"Mostly Sunny",
"Partly Cloudy",
"Mostly Sunny"
]
我希望将这两个数组合并成一个对象,就像这样:
{
"Today": "Mostly Sunny",
"Tonight": "Mostly Cloudy",
...
"Wednesday": "Mostly Sunny"
}
我希望有人能够指点我方向。我觉得答案可能在map
操作符中,但我还没有弄清楚。
transpose
和map
,以便最终得到单个对象而不是对象数组?或者还有其他转换方法可以将此结果数组合并为单个对象吗? - Scott| add
,得到了我想要的结果。 - Scottjq ".results[0].result.tag | [.classes, .probs] | transpose | map( {(.[0]): .[1]} ) | add"
myinput.txt - BSalitanumber
类型,我只需在映射中使用.[0]|tostring
(例如,管道到tostring
),参考 这个问题的答案。 - crackpotHouseplantmap({key: .[0], value: .[1]}) | to_entries
。 - augurar