我正在使用boto3获取具有以下格式的EC2实例标签
[{u'Value': 'swarm manager 0', u'Key': 'Name'}, {u'Value': 'manager', u'Key': 'Role'}]
我想将其转换为这样的字典
{'Name': 'swarm manager 0', 'Role': 'manager'}
这是我的代码
tags = [{u'Value': 'swarm manager 0', u'Key': 'Name'}, {u'Value': 'manager', u'Key': 'Role'}]
tag_dict = dict()
for tag in tags:
tag_dict[tag['Key']]=tag['Value']
print(tag_dict)
和https://repl.it/@trajano/GargantuanStickyNasm
似乎有些罗word,我认为应该做一两行python来完成转换。
答案 0 :(得分:5)
Dict comprehensions是一件事:
tag_dict = {tag['Key']: tag['Value'] for tag in tags}
答案 1 :(得分:2)
与理解类似,dict
接受可迭代的成对,也可以理解:
from operator import itemgetter
dict(map(itemgetter('Key', 'Value'), tags))
OR
dict(itemgetter('Key', 'Value')(x) for x in tags)
在python 3.6及更高版本中,字典是有序的,因此,如果您的字典在'Value'
之前总是有'Key'
,则可以这样做
dict(x.values()[::-1] for x in tags)
当然,后一种方法在生产环境中不值得使用,因为它太不可靠了。