使用 boto 在 python 上分隔键值

Having key value separated on python with boto

我试图只从 python> 中的字典中获取值 我按照这个 link 但是我有一个奇怪的错误告诉我

AttributeError: 'list' object has no attribute 'items'

但它不是列表而是字典(我认为...)

有我的代码

volumes = ec2.volumes.filter(
      Filters=[{'Name': 'status', 'Values': ['in-use']}]) 

for volume in volumes:
      print(volume.attachments)


for k, v in volume.attachments.items():
      print("Code : {0}, Value : {1}".format(k, v))

第一次打印的结果是:

[{u'AttachTime': datetime.datetime(2016, 8, 2, 14, 54, 27, tzinfo=tzutc()), u'InstanceId': 'i-xxxxxx', u'VolumeId': 'vol-xxxxx', u'State': 'attached', u'DeleteOnTermination': True, u'Device': '/dev/sda1'}]

有什么想法吗? 提前致谢

您已将字典嵌套在列表中。您必须遍历列表才能访问该卷的所有 attachments。您的方法只采用上一次迭代的最后一个 volume,您应该嵌套 for-loops 以查看所有卷:

for volume in volumes:
     for attachment in volume.attachments:
         for k, v in attachment.items():
             print("Code : {0}, Value : {1}".format(k, v))

如果每个卷只有一个附件,那么在索引 0:

索引 附件列表 就足够了
for volume in volumes:
    for k, v in volume.attachments[0].items():
        #                          ^
        print("Code : {0}, Value : {1}".format(k, v))