Я пытаюсь добавить данные в сложный словарь в Python.
Структура дана, я не могу изменить это.
Пример кода:
class AutoVivification(dict):
def __getitem__(self, item):
try:
return dict.__getitem__(self, item)
except KeyError:
value = self[item] = type(self)()
return value
class Command(BaseCommand):
def vorgang(self, lead):
payload = AutoVivification()
payload['antragsteller1'] = {
'personendaten': {
'anrede': lead.salutation,
'vorname': lead.firstname,
'nachname': lead.lastname,
'email': lead.email,
'telefonPrivat': lead.phone,
'geburtsdatum': str(lead.birthdate)
},
'wohnsituation': {
'anschrift': {
'strasse': lead.address,
'plz': lead.zip,
'ort': lead.city
}
},
'beschaeftigung': {
'beschaeftigungsart': lead.employment
}
}
if lead.employment == 'ARBEITER':
payload['antragsteller1']['beschaeftigung']['arbeiter']['beschaeftigungsverhaeltnis']['nettoeinkommenMonatlich'] = str(lead.income)
elif lead.employment == 'ANGESTELLTER':
payload['antragsteller1']['beschaeftigung']['angestellter']['beschaeftigungsverhaeltnis']['nettoeinkommenMonatlich'] = str(lead.income)
elif lead.employment == 'ARBEITSLOSER':
payload['antragsteller1']['beschaeftigung']['arbeitsloser']['sonstigesEinkommenMonatlich'] = str(lead.income)
Ошибка:
KeyError: 'angestellter'
Почему невозможно добавить 'angestellter' во второй оператор elif?
И как это возможно?