You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用jq提取JSON中ip_address遇报错:Cannot index string with string

解决jq提取嵌套JSON字符串中ip_address的问题

错误原因很明确:你的"External gateway info"字段存在两种情况——部分是JSON格式的字符串,部分是null。直接用{external_fixed_ips}访问字符串类型的字段,自然会触发"无法用字符串索引字符串"的错误。

正确的jq命令

jq -r '.[]."External gateway info" | select(. != null) | fromjson | .external_fixed_ips[]?.ip_address'

命令拆解

  • select(. != null):先过滤掉值为null的记录,避免后续处理出错
  • fromjson:将JSON格式的字符串解析成jq可操作的对象,这是解决问题的核心步骤
  • .external_fixed_ips[]?:[]遍历数组中的每个元素,?用来处理external_fixed_ips为空或不存在的情况,防止报错中断执行
  • .ip_address:最终提取目标字段

补充说明

如果你的external_fixed_ips本身不是数组(比如是单个对象),可以把[]?改成?.,即:

jq -r '.[]."External gateway info" | select(. != null) | fromjson | .external_fixed_ips?.ip_address'

内容的提问来源于stack exchange,提问作者chetzz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 07:22:02