Мы знаем, как использовать get с dict в python:
a={'k':'thevalue}
a.get('k', 'There is no such key in the dict')
a.get('m', 'There is no such key in the dict')
первый get возвращает соответствующее значение, а второй — значение по умолчанию.
Как бы вы поступили в следующей ситуации в одном лайнере:
a={'k':{'first':'uno','second':'dos'}}
# this is peseudocode:
a.get('k.first', 'There is no such key in the dict')
a.get('k["first"]', 'There is no such key in the dict')
это означает, что если k
существует в словаре, я хочу сначала получить содержимое значения ключа, то есть 'uno'
.
a.get('k', {}).get('first', 'no')
. Но это действительно зависит от того, какие ключи вы ожидаете и позволяете отсутствовать, а какие нет. В какой-то моментtry: a['k']['first'] except KeyError:
становится легче и осмысленнее. - person deceze♦   schedule 16.06.2021a.get('k').get('x', 'whatever')
- person Karolos K.   schedule 16.06.2021AttributeError: NoneType has no .get
… - person deceze♦   schedule 16.06.2021