我从输入JSON文件创建了一个csv输出.
由于一些JSON数组没有自己的id,我需要在我的csv输出中添加一个唯一的id,它将基于其JSON数组中当前元素的索引.
是否有任何内置的JQ函数返回元素索引?
to_entries
应该完美.
jq -n '["a","b","c"] | to_entries'
Run Code Online (Sandbox Code Playgroud)
会产生
[{"key":0,"value":"a"},{"key":1,"value":"b"},{"key":2,"value":"c"}]
Run Code Online (Sandbox Code Playgroud)
有两个强大的(即,在jq 1.3,1.4和1.5中工作)方法迭代一个带索引的数组:一个是使用keys [](可以在数组和对象上工作),另一个是使用范围/ 2.假设$ a是一个数组,这两种方法可以说明如下:
($a | keys[]) as $i | [$i, $a[$i]]
range(0; $a | length) as $i | [$i, $a[$i]]
Run Code Online (Sandbox Code Playgroud)
或者更简洁:
$a | keys[] as $i | [$i, .[$i]]
$a | range(0;length) as $i | [$i, .[$i]]
Run Code Online (Sandbox Code Playgroud)
如果您的jq有keys_unsorted
,您可能希望使用它.
(索引/ 1可能不是这里需要的.)
归档时间: |
|
查看次数: |
4704 次 |
最近记录: |