如何将字典列表分解为格式表中的标题

The*_*ith 4 powershell formatting dictionary

更新以包括列出对象的空白/空属性

抱歉标题,不知道如何标记这个问题。我想表达一个 Dictionary 对象列表,其中 Key 作为标题/属性,Value 作为标题/属性的值。

例如,采用以下 PoSH 代码

$obj1 = new-object object | select Data; $obj1.Data = @{"header1"="Value1";"header2"="Value2";}
$obj2 = new-object object | select Data; $obj2.Data = @{"header1"="ValueA";"header2"="ValueB";}
$obj3 = new-object object | select Data; $obj3.Data = @{"header1"="Value1";"header3"="ValueC";}

$tmp = @($obj1,$obj2,$obj3)
Run Code Online (Sandbox Code Playgroud)

$tmp然后看起来像下面这样:

Data                       
----                        
{header2, header1}
{header2, header1}
{header3, header1}
Run Code Online (Sandbox Code Playgroud)

$tmp | select -Expand Data得到以下有用信息

Name                           Value   
----                           -----       
header2                        Value2
header1                        Value1
header2                        ValueB
header1                        ValueA
header3                        ValueC
header1                        Value1
Run Code Online (Sandbox Code Playgroud)

无论如何,我可以旋转数据并将名称转换为属性(或标题)并用值表示它们,即

header1                        header2               header3
----                           -----                 -----
Value1                         ValueB
ValueA                         Value2
Value1                                               ValueC
Run Code Online (Sandbox Code Playgroud)

注意:我已经能够通过编写一个函数来做到这一点,该函数获取字典列表中的每个对象,创建一个新对象并通过 Add-Member 添加属性,但是当您有数千个条目并且数千个字典键

jon*_*n Z 6

由于 Powershell v2 new-object 有一个property参数,可让您输入一个哈希表,其中键是属性名称,值是属性值。

$tmp | select -expand data | %{new-object psobject -property $_}
Run Code Online (Sandbox Code Playgroud)

给出:

header2                                                     header1
-------                                                     -------
Value2                                                      Value1
ValueB                                                      ValueA
Run Code Online (Sandbox Code Playgroud)