将字典中的字典导出为CSV

时间:2016-10-03 22:43:24

标签: powershell csv export-to-csv

我有一个PowerShell字典,其中包含数组,通过

填充
foreach ($res in $result){
    foreach ($proper in $props){ 
        if ($proper.EntityId -eq $res.id){
            $ht[$res.name] += @($res.name,$proper.Val,$proper.PropDefId)
        }
    }
}

@{key,@(value1,value2,value3)}我正在寻找一种方法将其导出到

中的CSV
dictionary,value1,value2,value3

格式。

如果我只有一个值,我会做$ht.GetEnumerator() | Export-Csv csvname.csv。 我尝试过$ht.GetEnumerator | $_.GetEnumerator |,但这不起作用。

1 个答案:

答案 0 :(得分:0)

枚举外部哈希表的元素,从内部哈希表创建对象(如建议的@wOxxOm),并将外部哈希表的键添加为calculated property。然后将结果导出为CSV

$ht.GetEnumerator() | ForEach-Object {
  $key = $_.Name
  New-Object -Type PSObject -Property $_.Value |
    Select-Object @{n='Dictionary';e={$key}},*
} | Export-Csv 'C:\path\to\output.csv' -NoType

编辑:您有一个数组字典,而不是字典字典。它可以导出为这样的CSV:

$ht.Keys | ForEach-Object {
  New-Object -Type PSObject -Property @{
    'key'    = $_
    'value1' = $ht[$_][0]
    'value2' = $ht[$_][1]
    'value3' = $ht[$_][2]
  }
} | Export-Csv 'C:\path\to\output.csv' -NoType