【发布时间】:2016-04-15 14:03:30
【问题描述】:
我正在尝试使用 jq 组合两个数组,但遇到了一些麻烦。
我正在尝试从 netdata (netdata.firehol.org) 中解析出数据,而我感兴趣的 json 响应中的两条数据都是数组的一部分。第一个数组是标签第二个数组中的数据点。
示例输入
[
"time",
"guest_nice",
"guest",
"steal",
"softirq",
"irq",
"user",
"system",
"nice",
"iowait"
]
[
1460728600,
0,
0,
0,
0.45731,
0,
0.25108,
11.74702,
48.22465,
0
]
输入
如果您想自己获取新数据进行测试,可以使用以下方法:
curl -s -X GET --header 'Accept: application/json'
'http://netdata.firehol.org/api/v1/data?chart=system.cpu&after=-10&before=0&points=1&group=average&format=json&options=seconds%2Cjsonwrap' | jq '.result.labels, .result.data[]'
我尝试使用 map() 以及尝试将 vars 分配给两个数组,然后一起打印出对象,但都没有成功(如下)。
代码
| jq '.result.labels as $labels | .result.data[] as $data | .result.data[] | Label: $labels[.], data: $data[.]}'
感谢任何人提前提供的见解,因为我有点卡住了,并且希望能够在 jq 中完成这一切,而不是在 bash 中使用 for 循环(如果可能的话)。
预期输出
{ “时间”:“1460728600”, "guest_nice": "0", ... }
【问题讨论】: