在 jq 中争论网络邻接数据:字典到数组

Wrangling network adjacency data in jq: dictionary to array

我在 JSON 中有图表数据,想稍微修改一下,以便:

{"1": [1, 2, 3, 4],
"2": [3, 4, 7]}

变成

[1, 1]
[1, 2]
[1, 3]
[1, 4]
[2, 3]
[2, 4]
[2, 7]

是否可以使用jq?

您可以使用以下内容:

to_entries | map([[.key|tonumber],.value] | combinations) | .[]

combinations 将两个数组的数组作为输入,并输出两个输入数组的元素组合的数组。在我们的例子中,我们想为它提供一个包含键和值数组的数组。

你可以try it here.

此处使用基本方法可生成有效的解决方案:

keys_unsorted[] as $k
| .[$k][] as $v
| [$k|tonumber] + [$v]