【发布时间】:2021-04-26 21:26:01
【问题描述】:
我的输入如下:
list_groups= [
{
"dev-api-eu" = {
envs = [
"dev-eu-1",
"dev-eu-2",
]
hosts = [
"dev-api-eu1",
"dev-api-eu2",
]
}
"dev-api-uk" = {
envs = [
"dev-uk-1",
"dev-uk-2",
]
hosts = [
"dev-api-uk1",
"dev-api-uk2",
]
}
},
{
"dev-api-us" = {
envs = [
"dev-us-1",
"dev-us-2",
]
hosts = [
"dev-api-us1",
"dev-api-us2",
]
}
},
]
现在我希望我的输出为 3 个带有 3 个键的地图:
"dev-api-eu"
"dev-api-uk"
"dev-api-us"
值没有变化。
下面是我想要的输出:
map_groups1 = {
dev-api-eu = {
envs = [
"dev-eu-1",
"dev-eu-2",
]
hosts = [
"dev-api-eu1",
"dev-api-eu2",
]
}
dev-api-uk = {
envs = [
"dev-uk-1",
"dev-uk-2",
]
hosts = [
"dev-api-uk1",
"dev-api-uk2",
]
}
dev-api-us = {
envs = [
"dev-us-1",
"dev-us-2",
]
hosts = [
"dev-api-us1",
"dev-api-us2",
]
}
}
如果列表中的每个项目只有一个地图,则以下方法有效
map_groups1 = {
for record in local.list_groups:
keys(record)[0] => values(record)[0]
}
上面的代码跳过了键“dev-api-uk”,只在结果中给出了两个映射。 但是,如您所见,我在输入列表中的第一项有两个地图,并且可以有 n 个地图。有什么想法吗?
【问题讨论】:
-
您能否提供所需输出映射的完整示例?