如何从嵌套字典中过滤特定的键


dicts = {
'1': {
'name': 'hello1',
'roll': 1,
'artifacts': ['hello1']
},
'2': {
'name': 'hello2',
'roll': 2,
'artifacts': ['hello2']
},
'3': {
'name': 'hello3',
'roll': 3,
'artifacts': ['hello3']
}
}
keys = ['name', 'roll']
new_dict = {k: {key: v[key]} for k, v in dicts.items() for key in keys}
print(new_dict)

当前输出:

{'1': {'roll': 1}, '2': {'roll': 2}, '3': {'roll': 3}}

我想把键name也放入new_dict中。我可以手动执行,只是尝试以python的方式执行。

尝试:

dicts = {
"1": {"name": "hello1", "roll": 1, "artifacts": ["hello1"]},
"2": {"name": "hello2", "roll": 2, "artifacts": ["hello2"]},
"3": {"name": "hello3", "roll": 3, "artifacts": ["hello3"]},
}
keys = ["name", "roll"]
new_dict = {k: {n: v[n] for n in keys} for k, v in dicts.items()}
print(new_dict)

打印:

{
"1": {"name": "hello1", "roll": 1},
"2": {"name": "hello2", "roll": 2},
"3": {"name": "hello3", "roll": 3},
}

最新更新