遍历嵌套字典以获取数据

时间:2021-06-19 11:23:35

标签: python dictionary

我有以下格式的数据,我需要获取具有相同错误代码的键列表以及它们在 python 中具有相同错误代码的 PC 数量。

{'PC1': {'error': 'NOT_ENOUGH_RAM'},
'PC2': {'error': 'POWER_FAILURE'},
'PC3': {'error': 'POWER_FAILURE'}}

例如:输出应如下所示:

'POWER_FAILURE', ['PC2','PC3'] , 2 'NOT_ENOUGH_RAM', ['PC1'] , 1

1 个答案:

答案 0 :(得分:0)

使用 dict.setdefault 和一个简单的循环可以工作:

status = {'PC1': {'error': 'NOT_ENOUGH_RAM'},
'PC2': {'error': 'POWER_FAILURE'},
'PC3': {'error': 'POWER_FAILURE'}}

error = {}

for k,v in status.items():
    error.setdefault(v['error'],[]).append(k)

正如 Kraigolas 在评论中所说,记录每个列表的长度会适得其反,打印时可以计算

例如

print([(k,v,len(v)) for k,v in error.items()])