Предположит у меня есть следующие два словаря:Проверьте вложенный словарем является подмножеством другого вложенного словаря
dict1 =
{
'battery1' : { 'Charge': 'enable', 'Discharge': 'enable' },
'battery2' : { 'Charge': 'enable', 'Discharge': 'enable' }
}
dict2 =
{
'Estimated battery run-time': '05:00 minutes',
'battery1': {'Device': 'controller', 'Discharge': 'enable',
'Charging State': 'Fully charged', 'Charge': 'disable'},
'battery2': {'Device': 'controller', 'Discharge': 'enable',
'Charging State': 'Fully charged', 'Charge': 'disable'}
}
Я хотел бы проверить, если dict1 является подмножеством dict2 (т.е. если ключевые пары значений в dict 1 отображаются в dict2, а ОК, что те же клавиши в dict2 будут включать EXTRA, такие как состояние зарядки и устройство).
for k, v in dict1.iteritems():
for t, c in v.iteritems():
if k in dict2:
if c != dict2[k][v]:
mismatch = true
break;
Но я получаю
unhashable type: 'dict' error.
Обратите внимание, что это другой вопрос, чем:
Loop through all nested dictionary values?
Taking sums of nested values of nested dictionary
Iterate over nested dictionary
Может кто-нибудь помочь?
Заранее спасибо.
вам нужно сравнить с 'dict2 [к] [т] 'и вы должны использовать' несовпадение = true' –
Это не совсем понятно, что вы хотите здесь, вы можете расширить на то, что вывод, который вы ожидаете –