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

如何使用jq修改键值?基于键长度修改值的异常排查

问题分析与解决

你的jq命令没达到预期有两个核心问题:

  1. 逻辑错误:你想把值改成键的长度,但原命令里是对原有值取length,而不是对键取length
  2. 无效操作:原value是数字类型,jq中数字没有length属性,所以.value |= (. | length)根本不会修改值;另外.key |= "\(.)"是多余的,因为键本来就是字符串,这个操作没有实际作用

正确命令

echo '[{"kiwi": 3 }, {"apple" : 4} ]' | jq 'map(with_entries(.value |= (.key | length)))'

命令解释

  • map(...):遍历数组中的每个对象
  • with_entries(...):处理对象的每个键值对
  • .value |= (.key | length):将当前键值对的value替换为对应key的字符长度

执行后会得到你期望的输出:

[
  {
    "kiwi": 4
  },
  {
    "apple": 5
  }
]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 21:14:53