python中的查询json

python中的查询json,python,json,Python,Json,我是新来的。我正在尝试从以下JSON获取“VpcId”。试图在python中使用get()方法来完成此操作。有人能帮忙吗?先谢谢你 ec2.description_vpcs().get('vpcs').get('VpcId') 正在尝试查询的JSON主体 { "Vpcs": [ { "CidrBlock": "XXXXXXXXXX", "VpcId": "vpc-XXXXXXXXXX", "CidrBlockAssociationSet": [

我是新来的。我正在尝试从以下JSON获取“VpcId”。试图在python中使用get()方法来完成此操作。有人能帮忙吗?先谢谢你

ec2.description_vpcs().get('vpcs').get('VpcId')

正在尝试查询的JSON主体

{
  "Vpcs": [
    {
      "CidrBlock": "XXXXXXXXXX",
      "VpcId": "vpc-XXXXXXXXXX",
      "CidrBlockAssociationSet": [
        {
          "AssociationId": "XXXXXXXXXX",
          "CidrBlock": "XXXXXXXXXX",
        }
      ],
      "IsDefault": XXXXXXXXXX,
    },
    {
      "CidrBlock": "XXXXXXXXXX",
      "VpcId": "vpc-XXXXXXXXXX",
      "CidrBlockAssociationSet": [
        {
          "AssociationId": "XXXXXXXXXX",
          "CidrBlockState": {
            "State": "XXXXXXXXXX"
          }
        }
      ],
      "IsDefault": XXXXXXXXXX,
    },
    "ResponseMetadata": {
      },
      "RetryAttempts": 0
    }
  ]
}
  • ec2.description_vpcs().get('vpcs')
    给你一个数组。数组没有属性get。另外,您的json格式不正确,您在最后错过了一个
    ]

  • 您应该循环遍历它,然后可以使用
    .get('VpcId')

更新 您应该通过
Vpcs
进行iter。请尝试以下操作:

for i in ec2.describe_vpcs().get('Vpcs'):
    print(i.get('VpcId'))
由于有多个结果,您必须循环它们,但也可以在一行中完成:

print('\n'.join(i.get('VpcId') for i in ec2.describe_vpcs().get('Vpcs')))

哪个
VpcId
?存在多个。使用
get
时您面临的错误是什么?所有的“VpcId”。错误是
AttributeError:'str'对象没有属性“get”
JSON是否已在某个时候转换为python字典?请理解,JSON是一种文本格式,可以作为字符串读取。要获取值,必须将其转换为字典(例如:
json.loads(stringvalue)
。不清楚是否已完成此操作。我尝试了
json.dumps(ec2.descripe_vpcs()).get('vpcs')。get('VpcId')
。给出了ssame错误