python return None, если у dict нет ключа или значение пустое

Самое простое решение состоит в том, что вы должны получить список ключей dict, отсортированный по порядку, а затем итерацию по dict. Например,

a1 = {'a':1, 'b':13, 'd':4, 'c':2, 'e':30}
a1_sorted_keys = sorted(a1, key=a1.get, reverse=True)
for r in a1_sorted_keys:
    print r, a1[r]

Следующим будет вывод (порядок ожидания)

e 30
b 13
d 4
c 2
a 1
0
задан mysticalstick 13 July 2018 в 19:54
поделиться

2 ответа

Вы можете использовать оператор or для явного возврата None, если dict содержит пустой dict

results = x.get('field') or None

. Но имейте в виду, что вы получите None, для других типов значений весь статус bool false, например 0, '' и т. д.

4
ответ дан Sunitha 17 August 2018 в 12:10
поделиться
  • 1
    необходимо указать тип по умолчанию None для get()? Я думал, что по умолчанию None – mysticalstick 13 July 2018 в 20:06
  • 2
    @mysticalstick это не так, d.get("missing_key") будет по умолчанию None с или без второго аргумента явно как None. – Adam Smith 13 July 2018 в 20:20
  • 3
    @mysticalstick .. Спасибо .. Будет обновлять ответ – Sunitha 13 July 2018 в 20:22

Python - это утка, а словарь может содержать любое значение. Вам нужно будет явно проверить, является ли возвращаемое значение типом и является ли оно пустым.

value = x.get('field')
if value == {}:
    value = None
0
ответ дан Håken Lid 17 August 2018 в 12:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: