这是不直接支持的。
但是,您可以使用内置的 OmegaConf 解析器 oc.dict.* 实现所需的行为。
这些解析器允许您以列表的形式访问配置节点的键或值:
cfg = OmegaConf.create(
{
"workers": {
"node3": "10.0.0.2",
"node7": "10.0.0.9",
},
"nodes": "${oc.dict.keys: workers}",
"ips": "${oc.dict.values: workers}",
}
)
# Keys are copied from the DictConfig:
show(cfg.nodes)
# -> type: ListConfig, value: ['node3', 'node7']
# Values are dynamically fetched through interpolations:
show(cfg.ips)
# -> type: ListConfig, value: ['${workers.node3}', '${workers.node7}']
assert cfg.ips == ["10.0.0.2", "10.0.0.9"]
有了这个,你可以组成一个字典,并有一个节点来访问值或键,就好像它们是一个列表一样。