我这里有一些代码来比较使用Lambda和filter的两个字典。基本上,对于每个EC2实例,我都有一个必需的标记字典和一个标记字典。在
我需要能够处理两种情况。第一个条件是只检查Required Tags中的所有key是否存在于Instance Tags中,并且它们不是空的。在
requiredTags = {'Name' : ['WebSense','NAT-V2'] }
instanceTags = i['Instances'][0]['Tags']
requiredTagsPresent = filter(lambda x: x['Key'] in requiredTags and
x['Value'] is not '', instanceTags)
下一个条件是最常见的-检查是否有所有的键及其对应的值
^{pr2}$到目前为止,我还没有能够在一个脚本中完成以上两个任务。 最后一个条件就是我遇到麻烦了。我想要一个特定的标记值,如果存在,我们只检查是否存在对应的键,而不管值是什么。我不知道怎么做那样的事。在
有什么提示吗?在
如果使用内置函数},那么这类事情就容易多了。要检查所需的\u标记中的所有键是否都存在于实例\u标记中并且它们不是空的,请使用:
all
,而不是lambda
和{要检查instance\u标记中的所有键和值是否都在必需的\u标记中,请使用:
^{pr2}$假设是Python3。在
但我不确定这是否是您想要的,因为您对第二个测试条件的描述在结尾处留下了几个字:“检查所有键及其对应的值是否都在那里”。是什么?另外,当你在评论中告诉我实例标记的结构是什么时,你的方括号是不匹配的。你说这是一本字典,但它看起来像是一个字典列表,每一个都包含一个条目。在
相关问题 更多 >
编程相关推荐