我正在检查字典中的数据,需要提取不同的项目:
位于特定环境中的主机
具有低于x的特定软件的主机
我可以在字典项上循环两次,但无法合并这两个if条件
这就是dict的样子:
host_data = {'dev8': {'sw': [{'software_id': 'xxxx', 'software_version': 'xx'}, {'software_id': 'yyyy', 'software_version': 'zzz'}], 'env': 'dev'}}
这是我到目前为止所拥有的,但它并没有达到我想要的效果,只是执行了“else”
ENV = ['production', 'test']
for host,data in host_data.items():
if data['env'] not in ENV:
print (host, data['env'])
else:
for item in range(len(data['sw'])):
if data['sw'][item]['software_id'] is None:
print(host, data['sw'])
elif data['sw'][item]['software_id'] == 'xxxxxxx':
if version_tuple(data['sw'][item]['software_version']) < (6,):
print (host, data['sw'][item]['software_version'])
是否可以合并并只在字典项上循环一次到目前为止,我有两个for循环在host_data.items()
您没有在
dict
项上循环两次,这些是嵌套循环。 第一个for host, data in host_data.items()
将只覆盖一个项目(dev8
及其对应的dict
值)。 另一个循环在sw
内经过dict
,这是无法简化的但是,循环中的代码可以:
相关问题 更多 >
编程相关推荐