如何使用jq从多个嵌套数组中提取键

保罗·埃里克森

设置

我试图弄清楚jq过滤器是如何工作的,并且很难弄清楚嵌套数组。使用下面的数据,我无法输出固定的5键。我可以获得1个键和4个null或4个键和1个null,但不是全部5个键。

1个键,4个无效值:

.Reservations[] | {OwnerId, InstanceId, ImageId, PrivateIpAddress, Platform}

返回值:

{
 "OwnerId": "000000000000",
 "InstanceId": null,
 "ImageId": null,
 "PrivateIpAddress": null,
 "Platform": null
}

4个键,其中1个为空:

.Reservations[].Instances[] | {OwnerId, InstanceId, ImageId, PrivateIpAddress, Platform}

{
  "OwnerId": null,
  "InstanceId": "i-v33333333",
  "ImageId": "ami-44444444",
  "PrivateIpAddress": "10.0.0.0",
  "Platform": "windows"
}

由于各种原因,我无法在AWS CLI中使用“ --query”选项,该选项的确会返回我正在寻找的格式:

aws ec2 describe-instances --region us-east-1 --profile temp --query 'Reservations[*].{InstanceId:Instances[0].InstanceId,IP:Instances[0].PrivateIpAddress,Platform:Instances[0].Platform,OwnerId:OwnerId}'

输出:

[
    {
        "InstanceId": "i-11111111",
        "IP": "10.9.9.3",
        "OwnerId": "111111111111",
        "Platform": windows
    },
    {
        "InstanceId": "i-22222222",
        "IP": "10.0.0.0",
        "OwnerId": "111111111111",
        "Platform": windows
    }
]

这是JSON输入:

   {
    "Reservations": [
        {
            "OwnerId": "000000000000",
            "ReservationId": "r-22222222",
            "Groups": [],
            "RequesterId": "111111111111",
            "Instances": [
                {
                    "Monitoring": {
                        "State": "enabled"
                    },
                    "PublicDnsName": null,
                    "State": {
                        "Code": 16,
                        "Name": "running"
                    },
                    "EbsOptimized": false,
                    "LaunchTime": "2015-04-10T00:02:02.000Z",
                    "Platform": "windows",
                    "PrivateIpAddress": "10.0.0.0",
                    "ProductCodes": [
                        {
                            "ProductCodeId": "0000000000000000000000000",
                            "ProductCodeType": "marketplace"
                        }
                    ],
                    "VpcId": "vpc-2222222",
                    "StateTransitionReason": null,
                    "InstanceId": "i-v33333333",
                    "ImageId": "ami-44444444",
                    "PrivateDnsName": "ip-10-0-0-0.aws.foobarcloud.com",
                    "KeyName": "bar-servicemesh",
                    "SecurityGroups": [
                        {
                            "GroupName": "bar-wildcard-dns-intranet-InstanceSecurityGroup-VN0DFQ13QCDY",
                            "GroupId": "sg-55555555"
                        }
                    ],
                    "ClientToken": "11111111-2222-3333-4444-555555555555_subnet-66666666_1",
                    "SubnetId": "subnet-66666666",
                    "InstanceType": "t2.medium",
                    "NetworkInterfaces": [
                        {
                            "Status": "in-use",
                            "MacAddress": "00:00:00:00:00:77",
                            "SourceDestCheck": true,
                            "VpcId": "vpc-66666666",
                            "Description": null,
                            "NetworkInterfaceId": "eni-11111111"
                        }
                    ]
                }
            ]
        }
    ]
}

问题使用上面的JSON输入,如何使用jq产生以下输出?:

{
  "OwnerId": "000000000000",
  "InstanceId": "i-v33333333",
  "ImageId": "ami-44444444",
  "PrivateIpAddress": "10.0.0.0",
  "Platform": "windows"
}
汉斯Z.

您可以使用变量将OwnerIDas存储在以下位置:

.Reservations[] | .OwnerId as $OwnerId | ( .Instances[] | { "OwnerId": $OwnerId, InstanceId, ImageId, PrivateIpAddress, Platform} )

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何从嵌套数组中提取JSON数据?使用Android

来自分类Dev

如何从嵌套数组中提取特定对象?

来自分类Dev

如何从此嵌套数组中提取数据

来自分类Dev

javascript使用id列表从嵌套数组中提取对象

来自分类Dev

Hive 从嵌套数组中提取数据

来自分类Dev

如何最好地从嵌套数组中提取分支以最终与ng-repeat指令一起使用?

来自分类Dev

如何使用jq从数组中提取字符串?

来自分类Dev

PHP StdObject 如何提取嵌套数组

来自分类Dev

如何使用javascript创建嵌套数组以获取多个账单?

来自分类Dev

从嵌套数组中提取元素,同时递增

来自分类Dev

无法从Ansible中的嵌套数组中提取数据

来自分类Dev

从 UDF 内的 Spark SQL 行中提取嵌套数组

来自分类Dev

如何使用PHP cURL发送多维数组而没有嵌套数组中的数组键?

来自分类Dev

如何合并具有相同键的一个或多个嵌套数组值

来自分类Dev

jq:递归->嵌套数组

来自分类Dev

JSON:使用jq编辑嵌套数组中的特定值

来自分类Dev

jq使用嵌套数组元素的值排序

来自分类Dev

使用jq转换对象的嵌套数组

来自分类Dev

如何从嵌套数组的coingecko API中使用JavaScript提取价格

来自分类Dev

如何使用elemMatch匹配嵌套数组

来自分类Dev

如何使用Mongoose更新嵌套数组?

来自分类Dev

如何使用Lodash过滤嵌套数组?

来自分类Dev

如何使用嵌套数组加载 CSV

来自分类Dev

如何使用 setState 填充嵌套数组?

来自分类Dev

Excel VBA:如何使用嵌套数组

来自分类Dev

如何使用 postgresql 构造嵌套数组

来自分类Dev

如何使用构造函数Javascript在嵌套数组中输出键值对中的键

来自分类Dev

使用jq从嵌套的JSON对象中提取所选属性

来自分类Dev

使用 jq 循环从 JSON 文件中提取的键列表

Related 相关文章

  1. 1

    如何从嵌套数组中提取JSON数据?使用Android

  2. 2

    如何从嵌套数组中提取特定对象?

  3. 3

    如何从此嵌套数组中提取数据

  4. 4

    javascript使用id列表从嵌套数组中提取对象

  5. 5

    Hive 从嵌套数组中提取数据

  6. 6

    如何最好地从嵌套数组中提取分支以最终与ng-repeat指令一起使用?

  7. 7

    如何使用jq从数组中提取字符串?

  8. 8

    PHP StdObject 如何提取嵌套数组

  9. 9

    如何使用javascript创建嵌套数组以获取多个账单?

  10. 10

    从嵌套数组中提取元素,同时递增

  11. 11

    无法从Ansible中的嵌套数组中提取数据

  12. 12

    从 UDF 内的 Spark SQL 行中提取嵌套数组

  13. 13

    如何使用PHP cURL发送多维数组而没有嵌套数组中的数组键?

  14. 14

    如何合并具有相同键的一个或多个嵌套数组值

  15. 15

    jq:递归->嵌套数组

  16. 16

    JSON:使用jq编辑嵌套数组中的特定值

  17. 17

    jq使用嵌套数组元素的值排序

  18. 18

    使用jq转换对象的嵌套数组

  19. 19

    如何从嵌套数组的coingecko API中使用JavaScript提取价格

  20. 20

    如何使用elemMatch匹配嵌套数组

  21. 21

    如何使用Mongoose更新嵌套数组?

  22. 22

    如何使用Lodash过滤嵌套数组?

  23. 23

    如何使用嵌套数组加载 CSV

  24. 24

    如何使用 setState 填充嵌套数组?

  25. 25

    Excel VBA:如何使用嵌套数组

  26. 26

    如何使用 postgresql 构造嵌套数组

  27. 27

    如何使用构造函数Javascript在嵌套数组中输出键值对中的键

  28. 28

    使用jq从嵌套的JSON对象中提取所选属性

  29. 29

    使用 jq 循环从 JSON 文件中提取的键列表

热门标签

归档