简化if-if阶梯-python [英] Simplify a if - if ladder - python

查看:43
本文介绍了简化if-if阶梯-python的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要将这些代码行简化为少于4个if.不知道如何实现:

I need to simplify these lines of code to less than 4 if's. Not sure how i can achieve that:

    for response in response_json:
        for appliance in response['versanms.ApplianceStatusResult']['appliances']:
            temp_item = OrderedDict()
            if 'name' in appliance:
                temp_item['name'] = appliance['name']
            if 'type' in appliance:
                temp_item['type'] = appliance['type']
            if 'ping-status' in appliance:
                temp_item['ping-status'] = appliance['ping-status']
            if 'sync-status' in appliance:
                temp_item['sync-status'] = appliance['sync-status']
            if 'services-status' in appliance:
                temp_item['services-status'] = appliance['services-status']
            if 'orgs' in appliance:
                temp_item['orgs'] = appliance['orgs']
            if 'ownerOrg' in appliance:
                temp_item['ownerOrg'] = appliance['ownerOrg']
            if 'softwareVersion' in appliance:
                temp_item['softwareVersion'] = appliance['softwareVersion']
            if 'ipAddress' in appliance:
                temp_item['ipAddress'] = appliance['ipAddress']
            if appliance is not None:
                appliance_list.insert(0, temp_item)
return {'appliance': appliance_list}

需要删除if,因为我们的代码验证工具在一种方法中不喜欢超过4个if:(

Need to remove the if's because our code validation tool doesn't like more than 4 if's in one method :(

谢谢

推荐答案

全部替换:

if 'name' in appliance:
    temp_item['name'] = appliance['name']
if 'type' in appliance:
    temp_item['type'] = appliance['type']
if 'ping-status' in appliance:
    temp_item['ping-status'] = appliance['ping-status']
if 'sync-status' in appliance:
    temp_item['sync-status'] = appliance['sync-status']
if 'services-status' in appliance:
    temp_item['services-status'] = appliance['services-status']
if 'orgs' in appliance:
    temp_item['orgs'] = appliance['orgs']
if 'ownerOrg' in appliance:
    temp_item['ownerOrg'] = appliance['ownerOrg']
if 'softwareVersion' in appliance:
    temp_item['softwareVersion'] = appliance['softwareVersion']
if 'ipAddress' in appliance:
    temp_item['ipAddress'] = appliance['ipAddress']

带有循环:

for x in ['name', 'type', 'ping-status', 'sync-status',
          'services-status', 'orgs', 'ownerOrg',
          'softwareVersion', 'ipAddress']:
    if x in appliance:
        temp_item[x] = appliance[x]

这篇关于简化if-if阶梯-python的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆