Вы можете сделать:
from operator import itemgetter
config = {'server1': [{'name': 'data', 'disks': 3, 'block': 300}],
'server2': [{'name': 'data', 'disks': 8, 'block': 2200}],
'server3': [{'name': 'data', 'disks': 2, 'block': 300}, {'name': 'data2', 'disks': 2, 'block': 300},
{'name': 'data3', 'disks': 2, 'block': 1800}, {'name': 'data', 'disks': 8, 'block': 300}],
'server4': [{'name': 'data', 'disks': 3, 'block': 300}, {'name': 'data2', 'disks': 8, 'block': 880}]
}
disks = itemgetter('disks')
result = { k : sum(disks(v) for v in vs) for k, vs in config.items()}
print(result)
Вывод
{'server1': 3, 'server2': 8, 'server3': 14, 'server4': 11}
Или просто получить прямой доступ к элементу:
result = { k : sum(v['disks'] for v in vs) for k, vs in config.items()}
Выше понимание словаря эквивалентно этому для l oop:
result = {}
for k, vs in config.items():
result[k] = sum(v['disks'] for v in vs)