我正在尝试将物品列表转换为地图。 该键将与项目中的键匹配,并且如果键已经存在,则值应在列表中创建一个追加列表。
也许一个例子会更加不稳定
variable "list" {
type = list(map(string))
default = [
{ a : "a", k : "k1" },
{ a : "b", k : "k1" },
{ a : "c", k : "k1" },
{ a : "d", k : "k2" },
{ a : "e", k : "k2" }
]
}
// Output wanted
// {
// "k1" : [{a: "a"}, {a: "b"}, {a: "c"}],
// "k2" : [{a: "d"}, {a: "e"}]
// }
谢谢
答案 0 :(得分:1)
您可以查看以下内容:
variable "list" {
type = list(map(string))
default = [
{ a : "a", k : "k1" },
{ a : "b", k : "k1" },
{ a : "c", k : "k1" },
{ a : "d", k : "k2" },
{ a : "e", k : "k2" }
]
}
output "test" {
value = {for item in var.list:
item["k"] => {a = item["a"]}...
}
}
上面的代码使用three dots运算符,它产生:
test = {
"k1" = [
{
"a" = "a"
},
{
"a" = "b"
},
{
"a" = "c"
},
]
"k2" = [
{
"a" = "d"
},
{
"a" = "e"
},
]
}