Отсеять все значения None из Json
Задача: получить большой Json и из него выдернуть несколько десятков нужных значений. Далее эти значения запихнуть в строку вида:
result = 'Директор: ' + str(json['person1']['name']) + ', Заместитель: ' + str(json['person2']['name']) + ', Бухгалтер: ' итд
для отправки в мессенджер в виде get-запроса. Все работает хорошо, но иногда некоторые значения name = None. Как мне в дзене Python отсеять все None значения и соответственно чтобы в конечную переменную result не попадали не только сами None, но и убирались соответствующие должности? Например если у заместителя нет имени, то и в итоговую строку просто эта должность не попадала вообще, и было так:
result = 'Директор: ' + str(json['person1']['name']) + ', Бухгалтер: ' итд
На ум приходит только монструозная конструкция (учитывая что должностей- несколько десятков) проверок if-else, но думаю есть путь проще
Ответы (1 шт):
Как-то так:
POSITIONS_CONFIG = {
"Директор": "person1",
"Заместитель": "person2",
"Бухгалтер": "person3",
}
positions = []
for title, pos_json_key in POSITIONS_CONFIG.items():
name = json[pos_json_key]['name']
if name:
positions.add(f"{title}: {name}")
result = ', '.join(positions)