Bei dynmaisch erzeugtem Dictionary wird ein Wert überall eingefügt
Verfasst: Dienstag 30. Mai 2023, 14:13
Hallo zusammen,
ich habe ein Dictionary in folgender Ausprägung.
dieses soll dann gefüllt werden mit infos aus
mit folgender schleife
Das funktioniert soweit richtig, wenn ich version_infos_actuator_dict fest im Code definiert habe
Sobald ich aber version_infos_actuator_dict mit der unten stehende Funktion init_version_infos_actuator_dict erzeugen lasse. Werden die Daten city_data in alle Subdictionaries actuator_infos eingefügt.
Statt
passiert das
Woran liegt das, dass ich so komische Effekte habe, wenn ich das Dictionary dynamisch erzeugen lasse?
ich habe ein Dictionary in folgender Ausprägung.
Code: Alles auswählen
version_infos_actuator_dict = {
'env1': {'aachen': {'aachen_actuator_infos': '', 'infos2': {}}, 'berlin': {'aachen_actuator_infos': '', 'infos2': {}}},
'env2': {'dortmund': {'aachen_actuator_infos': '', 'infos2': {}}, 'stuttgart': {'aachen_actuator_infos': '', 'infos2': {}}}
}
Code: Alles auswählen
vers_info = {"env1" : {'aachen': {"build": "aachen_actuator_infos"}}}
Code: Alles auswählen
for env, city in vers_info.items():
for city_name, city_data in vers_info.items():
version_infos_actuator_dict[env][city_name]['actuator_infos'] = city_data
Sobald ich aber version_infos_actuator_dict mit der unten stehende Funktion init_version_infos_actuator_dict erzeugen lasse. Werden die Daten city_data in alle Subdictionaries actuator_infos eingefügt.
Statt
Code: Alles auswählen
version_infos_actuator_dict = {
'env1': {'aachen': {'actuator_infos': 'aachen_actuator_infos', 'infos2': {}}, 'berlin': {'actuator_infos': '', 'infos2': {}}},
'env2': {'dortmund': {'actuator_infos': '', 'infos2': {}}, 'stuttgart': {'actuator_infos': '', 'infos2': {}}}
}
Code: Alles auswählen
version_infos_actuator_dict = {
'env1': {'aachen': {'actuator_infos': 'aachen_actuator_infos', 'infos2': {}}, 'berlin': {'actuator_infos': 'aachen_actuator_infos', 'infos2': {}}},
'env2': {'dortmund': {'actuator_infos': 'aachen_actuator_infos', 'infos2': {}}, 'stuttgart': {'actuator_infos': 'aachen_actuator_infos', 'infos2': {}}}
}
Code: Alles auswählen
def init_version_infos_actuator_dict(all_cities, all_envs):
#all_cities = {'aachen': 'ahc', 'berin': 'ber', 'dortmund': 'dor', 'Stuttgard', 'stut'}
#all_envs ['env1', 'env2']
infos_dict = {}
# init_infos = json.dumps({'actuator_infos': "", 'helm_infos': {}})
init_infos = {'actuator_infos': "", 'helm_infos': {}}
for env in all_envs:
for city in all_cities:
if not infos_dict.get(env):
infos_dict[env] = {city: init_infos}
else:
infos_dict[env].update({city: init_infos})
#print(infos_dict)
return infos_dict