gpt4 book ai didi

json - 如何按名称过滤键,然后使用 jq 访问嵌套对象

转载 作者:行者123 更新时间:2023-12-03 09:28:51 25 4
gpt4 key购买 nike

新手jq用户在这里,挣扎于以下几点:

我有以下 json,需要根据关键字过滤键并打印出整个对象(不仅仅是键)或某些键/值对。请注意 JSON 的嵌套对象结构,这是有意的。

{
"timers": {
"timerWithAKeywordAPlusBlah": {
"count": 1,
"max": 0,
"min": 0
},
"timerWithAKeywordB": {
"count": 2,
"max": 0
},
"timerWithAKeywordAPlusBlahBlah": {
"count": 2385,
"max": 2,
"min": 1
}
}
}

期望的输出:
"timerWithAKeywordAPlusBlah": {
"count": 1,
"max": 0,
"min": 0
},
"timerWithAKeywordAPlusBlahBlah": {
"count": 2385,
"max": 2,
"min": 1
}

我尝试过的事情:

我可以打印出键名,但无法弄清楚如何访问整个对象。
cat timers.json| jq '.timers | keys[] | select(contains("KeywordA")) '

最佳答案

在此回复中,我将假设您希望输出是有效的 JSON。如果您希望输出采用其他形式,您可以简单地添加一些额外的过滤器。

无论如何,诀窍是选择对象,而不是键,如下所示:

.timers
| with_entries( select(.key|contains("KeywordA") ) )

使用您的(修改后的)输入,这会产生:
{
"timerWithAKeywordAPlusBlah": {
"count": 1,
"max": 0,
"min": 0
},
"timerWithAKeywordAPlusBlahBlah": {
"count": 2385,
"max": 2,
"min": 1
}
}

然后,您可以提取最终需要的任何细节。

关于json - 如何按名称过滤键,然后使用 jq 访问嵌套对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50864894/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com