У меня есть вложенный словарь
users = {'user502': {'firstname': 'James', 'lastname': 'Jones'}}
Пользователь может искать первымили фамилия и сможет обновить что-то еще.Я написал следующий код:
name_change=input('Enter name to change: ')
for key,value in users.items():
for k,v in value.items():
if name_change==v:
#print('name found in', value.get(name_change))
#print('name found in', value.get(k))
print('name found in', k)
updated_name=input('What would be the new name: ')
users.update(k=updated_name)
break
else:
print('name not found')
Я получаю RuntimeError: словарь изменил размер при ошибке итерации.Я провел некоторое исследование по обновлению, а также посмотрел на это обсуждение потока стека Значение обновления во вложенном словаре - Python
Я не могу понять, как указать код для выбора имени или фамилииимя, основанное на том, что пользователь вводит.Некоторые советы будут полезны.
Спасибо заранее.
** Из другого обсуждения кажется, что в Python 3 он не работает из-за '3.x, потому что ключи возвращают итератор вместо списка.'Я попытался сначала сделать поп, а затем обновить
updated_name=input('What would be the new name: ')
# users[k][v]=updated_name
x= value.get(k)
users.pop(x)
users[x]=updated_name
Однако теперь я получаю KeyError: 'James'