我有以下格式的数据,我需要获取具有相同错误代码的键列表以及它们在 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
答案 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()])