【发布时间】:2021-03-30 14:57:53
【问题描述】:
我有一个嵌套字典,我正在尝试找出一种方法来循环遍历键以仅获取键值。
VAV_SENSOR_NAME_MAP = {
'ZN-T': {'A' : 'zone', 'B' : 'air', 'C' : 'temp', 'D' : 'sensor'},
'Space Temperature Local': {'A' : 'zone', 'B' : 'air', 'C' : 'temp', 'D' : 'sensor'},
'ZN-SP': {'A' : 'zone', 'B' : 'air', 'C' : 'temp', 'D' : 'effective', 'E' : 'sp'},
'Space Temperature Setpoint Active': {'A' : 'zone', 'B' : 'air', 'C' : 'temp', 'D' : 'effective', 'E' : 'sp'},
'DA-T': {'A' : 'discharge', 'B' : 'air', 'C' : 'temp', 'D' : 'sensor'},
'Discharge Air Temperature': {'A' : 'discharge', 'B' : 'air', 'C' : 'temp', 'D' : 'sensor'},
'SA-F': {'A' : 'air', 'B' : 'flow', 'C' : 'sensor'},
'Discharge Air Flow': {'A' : 'air', 'B' : 'flow', 'C' : 'sensor'},
'HTG-O': {'A' : 'reheat', 'B' : 'cmd'},
'Heating Valve Command': {'A' : 'reheat', 'B' : 'cmd'},
'DPR-O': {'A' : 'air', 'B' : 'damper', 'B' : 'cmd'},
'Actual Air Valve Position': {'A' : 'air', 'B' : 'damper', 'B' : 'cmd'},
}
例如,我如何创建函数来仅打印/获取 ZN-T 的键值?希望只只获取zoneairtempsensor的键值
试图组成一个函数:
def get_all_values(nested_dictionary,key_word):
#print(key_word)
for key, value in nested_dictionary.items():
if type(value) is dict:
get_all_values(value,key_word)
else:
print(value[key_word])
get_all_values(VAV_SENSOR_NAME_MAP,'ZN-T')
这会给我一个TypeError: string indices must be integers
非常感谢任何提示
【问题讨论】:
-
只能获取列表中的值,例如
list(VAV_SENSOR_NAME_MAP['ZN-T'].values()) -
哇,如果您发帖并回答,那很容易,请点击绿色复选框谢谢!
标签: python