gpt4 book ai didi

json - Bash 和 jq - 查找变量中包含的键并更改其值

转载 作者:行者123 更新时间:2023-11-29 09:42:16 25 4
gpt4 key购买 nike

假设我有以下 json。

{
"userid":334,

"Parameters": [
{
"ParameterValue": "james", "ParameterKey": "name"
},
{
"ParameterValue": "22", "ParameterKey": "age"
},
{
"ParameterValue": "belfast", "ParameterKey": "city"
},
{
"ParameterValue": "software", "ParameterKey": "career"
}
]
}

我有一些代码,它采用 JSON 并提取所有键及其值。

echo $my_json | jq -r '.Parameters[] | .ParameterKey + "=" + .ParameterValue' >> $OUTPUT_FILE 

如果我查看输出文件,我会看到类似的内容:

name=james
age=22
city=belfast
career=software

如何在将其放入 $OUTPUT_FILE 之前找到“职业”并更改其值?下面的例子:

name=james
age=22
city=belfast
career=consultation

最佳答案

jq解决方案:

echo $my_json | jq -r --arg career "consultation" '.Parameters[] 
| [.ParameterKey, if (.ParameterKey == "career") then $career else .ParameterValue end]
| join("=")' > outputfile
  • --arg career "consultation" - 传递值"consultation"作为名为 $career 的预定义变量放入 jq 脚本中

  • join("=") - 使用 = 连接/内爆作为分隔符


outputfile内容:

name=james
age=22
city=belfast
career=consultation

关于json - Bash 和 jq - 查找变量中包含的键并更改其值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46827655/

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