Я проверяю count. Если в ключе B нет count, то показать 777, иначе показать настоящий count. В данном случае count нет, поэтому я должен показать 777.
Есть ли способ написать это утверждение if else более разумно и короче?
И не говоря уже о if len(list) ==0: Я не хочу этого.
Код:
results = [{'A': [{'_id': {}, 'count': 256}], 'B': []}]
if not results[0]['B']:
updated_events = 777
else:
updated_events = results[0]['B'][0]['count']
print(updated_events)
Может быть
results = [{'A': [{'_id': {}, 'count': 256}], 'B': []}]
updated_events = results[0]['B'][0].get('count') if results[0]['B'] else 777
print(updated_events)
try:
updated_events = results[0]['B'][0]['count']
except LookupError:
updated_events = 777
LookupError является родительским классом как для KeyError, так и для IndexError.
Создайте словарь из 'B' содержимого и вызовите dict.get метод со значением по умолчанию 777:
updated_events = dict(*results[0]['B']).get('count', 777)
Не упоминать if len(list) ==0: значит не упоминать этот чек if not results[0]['B'] ?