首页 > 解决方案 > Jq index() 未找到

问题描述

在 Mac OS Catalina(jq 版本 1.6)上执行以下 jq 命令可以正常工作:

echo $(jq '.paths | to_entries | map(select(.value[].tags | index("Tag123"))) | from_entries' custom.json)

然而在 CentOS (CentOS release 6.9 (Final)) (jq version 1.3) 上执行它会返回以下错误:

echo $(jq '.paths | to_entries | map(select(.value[].tags | index("Shell"))) | from_entries' custom.json)
error: index is not defined
.paths | to_entries | map(select(.value[].tags | index("Shell"))) | from_entries
                                                 ^^^^^
1 compile error

标签: pythonjq

解决方案


显然,通过 pip 安装的 jq 版本是 1.3 版(这是古代历史)或更早版本。index/1仅在 jq 1.3 发布后作为内置过滤器引入。

如果您完全坚持使用 jq 1.3,contains/1则可以在不需要整数索引的情况下使用。


推荐阅读