如何使用 python 从响应中获取特定值

How to get the particular values from response using python

我正在尝试从嵌套的 JSON 中获取值。

response = {
   "Instance":[
      {
      "id":"id-1",
      "Tags":[],
      },
      {
      "id":"id-2",
      "Tags":[],
      },
      {
      "id":"id-3",
      "Tags":[
         {
            "Key":"test",
            "Value":"test"
         }
      ],
      }
      ]
}
  

我试过的python代码是

     if response["Instance"]:
        print("1-->",response["Instance"])
        for identifier in response["Instance"]:
            print("2-->", identifier)
            if identifier["id"]:
                print("3-->", identifier["id"])
                if identifier["Tags"]:   #ERROR Thrown here as 'Tags' in exception
                    print("4-->", identifier["Tags"])
                    for tag in identifier["Tags"]:
                        print("5-->", identifier["Tags"])
                        if tag['Key'] == 'test' and tag['Value'] == 'test':
                            print("6--> test present ")

我正在尝试解析所有 ID 并获取包含测试密钥的标签。但是当标签有一些值时在第三个循环中出错。异常错误只是告诉 'Tags' 如何修改代码?

您正在测试 identifier 字典中是否存在键 "Tags",如下所示:

if identifier["Tags"]:
    # iterate over identifier["Tags"]

如果 "Tags" 不在 identifier 字典中,这将导致:

KeyError: 'Tags'

相反,您应该使用:

if "Tags" in identifier:
    # iterate over identifier["Tags"]