如何在 Powershell 中循环 dict(Python)

How to loop over dict(Python) in Powershell

对于大多数具有 PowerShell 背景的人来说,这可能是一件非常微不足道的事情,但我来自 python,因此发现理解 Powershell 的工作原理有点困难。

我有以下 dict,由其他一些 python func 创建,看起来像以下 -

data = {
 'test1@gmail.com': ['a@gmail.com', 'b@gmail.com'], 
 'test2@gmail.com': ['c@gmail.com'], 
 'test3@gmail.com': ['d@gmail.com', 'e@gmail.com']
 }

我想获取此数据并在 Powershell 中以输出应打印的方式循环遍历它

Key test1@gmail.com has a@gmail.com value
Key test1@gmail.com has b@gmail.com value
Key test2@gmail.com has c@gmail.com value
Key test3@gmail.com has d@gmail.com value
Key test3@gmail.com has e@gmail.com value

我面临的第一个问题是我不确定如何在 PowerShell 中保存 data 变量我也尝试了 @ 但无法弄清楚。非常感谢具有 PowerShell 背景的人提供任何帮助

请尝试以下代码:

$data = "{
 'test1@gmail.com': ['a@gmail.com', 'b@gmail.com'], 
 'test2@gmail.com': ['c@gmail.com'], 
 'test3@gmail.com': ['d@gmail.com', 'e@gmail.com']
 }"

 $x = $data | ConvertFrom-Json

 foreach($a in $x.psobject.properties){

 foreach($b in $a.Value){
 $str = "Key " + $a.Name + " has " + $b
 $str
 }
 
}

 "**completed"

测试结果: