Json jq-如何创建包含双引号包围字段值的输出 出身背景
下面的命令生成一个JSON流Json jq-如何创建包含双引号包围字段值的输出 出身背景,json,jq,Json,Jq,下面的命令生成一个JSON流 aws cloudformation describe-stacks --stack-name ${stack} --region us-east-1 |\ jq --arg STACK ${stack} '.Stacks[] | select(.StackName=="mlai-metadata-development-backend") | .Outputs[] | select(.ExportName != null) 我喜欢创建一个JSON字典,比如{s
aws cloudformation describe-stacks --stack-name ${stack} --region us-east-1 |\
jq --arg STACK ${stack} '.Stacks[] | select(.StackName=="mlai-metadata-development-backend") | .Outputs[] | select(.ExportName != null)
我喜欢创建一个JSON字典,比如{stack vpc cidr:172.31.0.0/16}
运行此:
aws cloudformation describe-stacks --stack-name ${stack} --region us-east-1 |\
jq --arg STACK ${stack} '.Stacks[] | select(.StackName=="mlai-metadata-development-backend") | .Outputs[] | select(.ExportName != null) | "\(.ExportName):\(.OutputValue)"'
创造
"stack-vpc-id:vpc-d4520cb1"
"stack-vpc-cidr:172.31.0.0/16"
问题
如何使用jq将它们转换为JSON字典的行
使现代化
多亏了这些答案,我做对了
aws cloudformation describe-stacks --stack-name ${stack} --region ${AWS_DEFAULT_REGION} |\
jq --arg stack ${stack} \
'[.Stacks[] | select(.StackName==$stack) | .Outputs[] |
select(.ExportName != null) | { (.ExportName) : (.OutputValue) }] |
add' |\
tee "${stack}".json
结果:
{
"apigw-rest-api-conntent-metadata-url": "https://****.execute-api.us-east-1.amazonaws.com/development/",
"apigw-rest-api-conntent-metadata-stage-name": "development",
"stack-availability-zones": "us-east-1a,us-east-1b,us-east-1c,us-east-1d,us-east-1e,us-east-1f",
"apigw-rest-api-conntent-metadata-deployment-id": "***0tk",
"stack-vpc-id": "vpc-d4520cb1",
"stack-vpc-cidr": "172.31.0.0/16"
}
对于您在最后一跳时遇到的直接问题,您可以在jq中执行下面的操作 但是,您可以通过拼写出明确的k/v名称来执行以下操作
{ (.ExportName) : (.OutputValue) }
对于您在最后一跳时遇到的直接问题,您可以在jq中执行下面的操作 但是,您可以通过拼写出明确的k/v名称来执行以下操作
{ (.ExportName) : (.OutputValue) }
我[想]创建一个JSON字典
要从流创建单个词典,请执行以下操作:
jq -n 'reduce inputs as $i (null;
. + ($i|{ (.ExportName) : (.OutputValue) }))'
或者您可以修改jq调用,使用类似的代码段,如下所示:
[ .Stacks[] ....
| { (.ExportName) : (.OutputValue) } ]
| add
我[想]创建一个JSON字典
要从流创建单个词典,请执行以下操作:
jq -n 'reduce inputs as $i (null;
. + ($i|{ (.ExportName) : (.OutputValue) }))'
或者您可以修改jq调用,使用类似的代码段,如下所示:
[ .Stacks[] ....
| { (.ExportName) : (.OutputValue) } ]
| add