首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用jq将数字转换为字符串?

如何使用jq将数字转换为字符串?
EN

Stack Overflow用户
提问于 2016-02-02 17:08:27
回答 3查看 80.7K关注 0票数 97

给定以下jq命令和Json:

代码语言:javascript
运行
复制
jq '.[]|[.string,.number]|join(": ")' <<< '
[
  {
    "number": 3,
    "string": "threee"
  },
  {
    "number": 7,
    "string": "seven"
  }
]
'

我试图将输出格式化为:

代码语言:javascript
运行
复制
three: 3
seven: 7

不幸的是,我的尝试导致了以下错误:

jq:错误:不能添加字符串和数字

如何将数字转换为字符串,以便两者都可以连接?

EN

回答 3

Stack Overflow用户

发布于 2016-02-02 17:08:27

jq命令具有串字串函数。我花了一段时间才学会尝试和错误地使用它。下面是如何使用它:

代码语言:javascript
运行
复制
jq -r '.[] | [ .string, .number|tostring ] | join(": ")' <<< '
[{ "number": 9, "string": "nine"},
 { "number": 4, "string": "four"}]
'
nine: 9
four: 4
票数 98
EN

Stack Overflow用户

发布于 2017-10-10 19:51:55

另一种可以说是更直观的格式是:

代码语言:javascript
运行
复制
jq '.[] | .string + ": " + (.number|tostring)' <<< ...

值得注意的是,在.number|tostring周围需要父母。

票数 62
EN

Stack Overflow用户

发布于 2019-08-09 12:12:02

对于这种简单的情况,串内插对string的隐式转换可以做到这一点:

代码语言:javascript
运行
复制
.[] | "\( .string ): \( .number )"

jq‣游戏上看到它的作用。

票数 13
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35365769

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档