Вы повторяете много проверок. Не делай этого. Для упрощения просто вложите уникальные if
s в повторяющуюся инструкцию if
:
for each_component in component_objects:
if each_component['region_type'] == deploy_json['env_type'].upper():
if each_component['component_type'] == 'pe':
if each_component['name'] == 'PE1':
env_data['PE1_HOSTNAME'] = each_component['hostname'].split('.')[0]
elif each_component['name'] == 'PE2':
env_data['PE2_HOSTNAME'] = each_component['hostname'].split('.')[0]
elif each_component['component_type'] == 'versadirector' and each_component['name'] == 'VersaDirector':
env_data['VD_HOSTNAME'] = each_component['hostname'].split('.')[0]
elif each_component['component_type'] == 'jump' and each_component['name'] == 'Jump':
jump_ips = json.loads(each_component['ip_addr'])
elif each_component['component_type'] == 'versaanalytics':
if each_component['name'] == 'VersaAnalytics1':
analytics_1 = each_component['hostname'].split('.')[0]
elif each_component['name'] == 'VersaAnalytics2':
analytics_2 = each_component['hostname'].split('.')[0]
elif each_component['name'] == 'VersaAnalytics3':
analytics_3 = each_component['hostname'].split('.')[0]
elif each_component['name'] == 'VersaAnalytics4':
analytics_4 = each_component['hostname'].split('.')[0]
Это почти настолько просто, насколько это возможно. Вы должны использовать функции, если хотите еще больше упростить, потому что на данный момент есть много повторяющихся задач. Все, что повторяется, может быть заменено функцией.