【问题标题】:jq json - select by key namejq json - 按键名选择
【发布时间】:2023-02-25 03:11:44
【问题描述】:

我正在使用 jq 尝试从 AWS CLI 查询中解析一些细节。
示例 JSON:

                    "Tags": [
                        {
                            "Key": "Name",
                            "Value": "db01"
                        },
                        {
                            "Key": "BackupResourceType",
                            "Value": "EC2"
                        },
                        {
                            "Key": "Role",
                            "Value": "db_edi01"
                        },
                        {
                            "Key": "OS",
                            "Value": "Ubuntu 18.04"
                        }
                    ],

我遇到的问题是这些标签值的顺序不一致。有没有一种方法可以选择 key=OS 的值而不是选择特定的数组值?

[.InstanceId, .State.Name, .Tags[1].Value, .Tags[0].Value, etc]

谢谢您的帮助!

【问题讨论】:

    标签: json command-line-interface jq


    【解决方案1】:

    也许最好的方法是使用from_entries。例如。对于“操作系统”键:

    .Tags | from_entries | .OS
    

    更一般但更详细地说,您可以使用:

    .Tags | first( .[] | select(.Key == "OS") | .Value)
    

    或者如果您担心指定键不存在时的结果:

    .Tags | first( .[] | select(.Key == "OS") // {} | .Value)
    

    【讨论】:

      猜你喜欢
      • 2018-09-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-13
      • 2019-08-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多