arrays - jq - 成对转换数组
问题描述
我有一个这样的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 的子数组,包含从 index $i
(包括)到 index $i+2
(不包括)的元素。
推荐阅读
- java - 如何重构重复代码以创建 Intent?
- python - 进程以退出代码 -1073741819 (0xC0000005) - Rpy2 完成
- entity-framework - 使用多租户 .net 核心中的实体框架从模型更新数据库
- python - 在 Conda 上安装 multiqc 会产生“UnsatisfiableError:”
- bots - 在 Telethon 上编辑机器人消息
- java - java - 如何将sql查询中的多列转换为java中的一个对象?
- google-apps-script - G Suite Marketplace:必须启用至少一个扩展程序并且必须配置选定的扩展程序
- python - 使用python在csv中每一行的末尾附加字典或值列表
- javascript - 你能帮我理解代码吗?任务是找到第一个非连续数字
- azure - Azure Application Insights 将响应代码零标记为成功