2017-10-19 76 views
0

在我的代碼我需要呈現鍵值對更關鍵的值中的一個是一個數組。我知道你創建的Powershell可以用散列表創建一個數組。我所掙扎的是我怎麼能有哈希表中的鍵的值是從Python中的變量Powershell的添加變量在哈希表

我原來的代碼是:

data: {"name":"{{name}}","address" : [{"Number":"{{number}}","Road":"{{road}}","City":"{{city}}」}]} 

我的代碼示例如下輸入:

$number = "10" 

$road = "Downing Street" 

$city = "London" 

$address = @{"Number" = "$number"; "Road" = "$road"; City = "$city"} 

$data = @{ 
    name = $name 
    address = $address 
} 

下面是從Powershell的變量輸出

PS C:\tmp> $address 

Name       Value                       
----       -----                       
Number       10                       
Road       Downing Street                    
City       London 



PS C:\tmp> $data = @{ 
    name = $name 
    address = $address 
} 

PS C:\tmp> $data 

Name       Value                       
----       -----                       
name       prodsql01                      
address      {Number, Road, City} 

$data地址數組沒有它的值。這個代碼和我在做什麼錯

是否有人可以給些建議。

在此先感謝

+0

'$ data'確實有值,它只是不顯示它們(檢查'$ data.address')。什麼是所需的輸出格式?你可以做'$ data | ConvertTo-Json'如果JSON輸出正常。 –

回答

0

你的代碼的工作壽。

PS> $data 

Name       Value 
----       ----- 
name       prodsql01 
address      {Number, Road, City} 

PS> $data.address 

Name       Value 
----       ----- 
Number       10 
Road       Downing Street 
City       London 

PS> $data.address.road 
Downing Street 

如果你想它輸出的值,那麼你需要考慮你將如何首先代表它。

0

你把它們放在一個數組,所以你只需要參考各一個。

Ex。 $address.Road

$number = "10" 

$road = "Downing Street" 

$city = "London" 

$name = "prodsql01" 

$address = @{"Number" = "$number"; "Road" = " $road"; City = " $city"} #I added spaces here 

$data = @{ 
    name = $name 
    address = $address.Number + $address.Road + $address.City 
} 
0

作爲其它mentionned,數據是存在的,但不通過控制檯顯示。 我的建議,特別是如果你有多個記錄,是創建一個PSobject兩個名稱/地址和號碼/城市/公路

與論文更換您的$address$data分配線:

$address = New-Object psobject -Property @{"Number" = "$number"; "Road" = "$road"; City = "$city"} 

$data = new-object psobject -Property @{name = $name;address = $address} 

你的輸出現在這個樣子。

name  address          
----  -------          
prodsql101 @{Number=10; Road=Downing Street; City=London}