我有这种结构的嵌套字典:
d = {
"A":{
"Param1":"7",
"Param2":"5",
},
"B":{
"Param1":"1",
"Param2":"2",
},
"C":{
"Param1":"X",
"Param2":"Y",
},
"D":{
"SomeOtherParam1": "a",
"SomeOtherParam2": "3",
}
}
如何通过嵌套的键名和参数获取字典键?例如:Param1=1 和 Param2=2 输出应该是 B。甚至可以这样做吗?
更新
感谢@deceze,这正是我想要实现的:
pexist = next((k for k, v in d.items() if v.get('Param1') and v.get('Param2') if v['Param1'] == '1' and v['Param2'] == '2'), None)
if pexist == None:
print("Does not exist!")
else:
print(pexist)
答案 0 :(得分:0)
基于 Pandas 模块的解决方案:
import pandas as pd
df = pd.DataFrame({'A': {'Param1': '7', 'Param2': '5'}, 'B': {'Param1': '1', 'Param2': '2'}, 'C': {'Param1': 'X', 'Param2': 'Y'}})
s = (df.loc['Param1'] == '1') & (df.loc['Param2'] == '2')
print(*s[s].keys())
输出:
B