[英]jq - convert an array in a pair
我有一個像這樣的 json 數組:
["abc", 0, "cd", 1]
我正在努力將其轉換為 csv:
"abc", 0
"cd", 1
似乎我還沒有找到解決方案,但我已經嘗試過:
jq '[ "abc","def", "cd", "nc"] |
to_entries |
(.[] | select(.key % 2 == 0))as $a, ( .[] | select(.key % 2 != 0) as $b ) |
[$a, $b] '
但這又回到了我身上
jq: 1 compile error
我無法理解如何采用兩個元素進行迭代。 對此的任何幫助將不勝感激
使用range
生成偶數索引,並將它們用於切片數組:
range(0;length;2) as $i | .[$i:$i+2] | @csv
請注意, -r
選項對於生成正確的CSV是必需的。
.[$i:$i+2]
生成一個長度為2的子數組,其中包含從索引$i
(含)到索引$i+2
(不含)的元素。
或者,有一個標准的unix實用程序( paste
),它可以輕松地連接輸出行-您只需要每行轉儲一個JSON數組值(我將使用jtc
完成此操作,但同樣,任何JSON工具都可以完成這樣的瑣碎任務):
bash $ echo '["abc", 0, "cd", 1]' | jtc -w[:] | paste -d',' - -
"abc",0
"cd",1
bash $
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.