Это можно сделать с помощью цепочки доступа к элементу, как показано ниже.
Предполагая, что основной словарь имеет имя d
, для доступа к словарю 'User'
вам нужно будет сделать d['User']
, то есть:
d['User'] = {
'HomeDirectory': 'string',
'SshPublicKeys': [
{
'DateImported': datetime(2015, 1, 1),
'SshPublicKeyId': '123'
},
{
'DateImported': datetime(2018, 1, 1),
'SshPublicKeyId': '456'
},
],
'UserName': 'string
}
Для доступа к списку 'SshPublicKeys'
из d['User']
do d['User']['SshPublicKeys']
, то есть:
d['User']['SshPublicKeys'] = [
{
'DateImported': datetime(2015, 1, 1),
'SshPublicKeyId': '123'
},
{
'DateImported': datetime(2018, 1, 1),
'SshPublicKeyId': '456'
},
]
Теперь для доступа к первому словарю из d['User']['SshPublicKeys']
вам нужно сделать d['User']['SshPublicKeys'][0]
, то есть:
d['User']['SshPublicKeys'][0] = {
'DateImported': datetime(2015, 1, 1),
'SshPublicKeyId': '123'
}
Наконец, как вы уже догадались, получить 'SshPublicKeyId'
do d['User']['SshPublicKeys'][0]['SshPublicKeyId']
, то есть:
>>> d['User']['SshPublicKeys'][0]['SshPublicKeyId']
'123'
Аналогично, d['User']['SshPublicKeys'][1]['SshPublicKeyId'] == '456'
и т. д.
Будет лучше (и короче) написать функцию ИЛИ , сохранить ссылку на d['User']['SshPublicKeys']
и индексировать ее, если вам нужно сделать это повторно - - в зависимости от того, что соответствует вашим потребностям.