gpt4 book ai didi

json - 如何使用 jq 创建增量索引

转载 作者:行者123 更新时间:2023-12-03 21:31:39 25 4
gpt4 key购买 nike

我有一个这样的json:

[
{"data":"a"},
{"data":"b"},
{"data":"c"}
]
使用 jq 我想添加一个这样的增量 id 字段:
[
{"data":"a","id":"xx_1"},
{"data":"b","id":"xx_2"},
{"data":"c","id":"xx_3"}
]
我似乎无法为此获得正确的 jq 命令,有人吗?

最佳答案

这是一种方法:

to_entries | map( (.value.id = "xx_\(1+.key)" ) | .value)

这是另一种方法,但是需要 jq 1.5:
def add_id(prefix):
[ foreach .[] as $o (0;
. + 1;
$o + {"id": (prefix + tostring) }) ];

add_id("xx_")

例子:
$ jq -c -f add_id.jq
[ {"data":"a"}, {"data":"b"}, {"data":"c"} ]

输出:
[{"data":"a","id":"xx_1"},{"data":"b","id":"xx_2"},{"data":"c","id":"xx_3"}]

第三种方法是使用 transpose :
def add_id(prefix):
[ ., [ range(0;length) | {"id": (prefix + tostring) } ] ]
| transpose | map(add);

(如果您的 jq 没有 transpose/0,则可以很容易地找到它的 jq 定义,例如通过谷歌搜索。)

关于json - 如何使用 jq 创建增量索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34510742/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com