如何从这个复杂的 Puppet 结构中提取值
How to extract values from this complex Puppet Struct
我在 puppet 中有这个数据结构:
Struct[
'ssh_keys' => Hash[
String,
Struct[
'path' => String,
'content' => String,
]
]
] $myStructure
我想将所有 'path' 值提取到数组中。
我已经使用
映射了内部结构
$testvariable = $myStructure['ssh_keys'].map |$items| { $items[1] }
但这里有点糟糕,任何帮助将不胜感激。
不清楚您挂断了什么,因为您确实已经完成了大部分应该可行的解决方案。然而,对于哈希,我通常更喜欢 map()
函数的形式,其中 lambda 有两个参数,一个单独的键和值。在这种情况下会读得更清楚:
$testvariable = $myStructure['ssh_keys'].map |$unused, $ssh_key| { $ssh_key['path'] }
但是您也应该能够在您的原始代码中将 $items[1]
索引为散列 (Struct
) 它是:$items[1]['path']
.
如果你不能忍受上面数组和散列索引的混合,你也可以使用dig()
函数:$items.dig(1, 'path')
.
我在 puppet 中有这个数据结构:
Struct[
'ssh_keys' => Hash[
String,
Struct[
'path' => String,
'content' => String,
]
]
] $myStructure
我想将所有 'path' 值提取到数组中。
我已经使用
映射了内部结构$testvariable = $myStructure['ssh_keys'].map |$items| { $items[1] }
但这里有点糟糕,任何帮助将不胜感激。
不清楚您挂断了什么,因为您确实已经完成了大部分应该可行的解决方案。然而,对于哈希,我通常更喜欢 map()
函数的形式,其中 lambda 有两个参数,一个单独的键和值。在这种情况下会读得更清楚:
$testvariable = $myStructure['ssh_keys'].map |$unused, $ssh_key| { $ssh_key['path'] }
但是您也应该能够在您的原始代码中将 $items[1]
索引为散列 (Struct
) 它是:$items[1]['path']
.
如果你不能忍受上面数组和散列索引的混合,你也可以使用dig()
函数:$items.dig(1, 'path')
.