gpt4 book ai didi

Powershell pscustomobject 格式表新行而不是一行

转载 作者:行者123 更新时间:2023-12-04 02:11:11 24 4
gpt4 key购买 nike

我有一个非常大的员工 JSON 响应,我试图将其转换为表格格式,导出为 CSV 并最终插入到 SQL Server 中。我能够确定如何从 json 文件中获取我的所有变量,但是现在我将我的所有值都插入到每一列的一行中,而不是为每个员工插入一个新行。此外,当我导出到 CSV 时,值变成 System.Object[]。

$json1 = Invoke-webRequest -Uri $Workeruri -Certificate $cert -Headers $WorkerHeader | convertfrom-json

$table = [PSCustomObject] @{
associateOID = $json1.workers.associateOID
workerID = $json1.workers.workerID.idValue
GivenName = $json1.workers.person.legalName.givenName
MiddleName = $json1.workers.person.legalName.middleName
FamilyName1 = $json.workers.person.legalName.familyName1

} |format-table -autosize
$table | export-csv $filepath -NoTypeInformation

列是一个小样本,实际上可能有 100 列。但是,我的响应返回如下:

associateOID     workerID        givenName                                          
------------ -------- ---------
{1,2,3,4,5...} {a,b,c,d,e...} {Lebron James, Micheal Jordan, Steph Curry...}

我希望它返回:

associateOID     workerID        givenName                                          
------------ -------- ---------
1 A Lebron James
2 B Micheal Jordan
3 C Steph Curry

此外,当导出到 CSV 时,响应具有正确的列,但所有列都返回:System.Object[]。此外,我的具有整数和日期的字段不返回数据。我该如何解决这个问题?

我尝试过使用 sort-object、group-object、for-each 循环。没有任何效果。

最佳答案

你可以这样试试:

$json1 = Invoke-webRequest -Uri $Workeruri -Certificate $cert -Headers $WorkerHeader | ConvertFrom-Json

$table = $json1 | ForEach-Object {
[PSCustomObject] @{
associateOID = $_.workers.associateOID
workerID = $_.workers.workerID.idValue
GivenName = $_.workers.person.legalName.givenName
MiddleName = $_.workers.person.legalName.middleName
FamilyName1 = $_.workers.person.legalName.familyName1
}
}

$table | Export-Csv $filepath -NoTypeInformation

$table | Format-Table -AutoSize

您的代码片段获取每一列的所有值并将它们存储在单个对象中,而不是迭代从 JSON 转换的对象集合。

此外,一旦您使用 Format-Table,数据会被格式化以供显示,但在管道中不再可用。这就是我将屏幕显示和 CSV 导出分开的原因。

关于Powershell pscustomobject 格式表新行而不是一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38133898/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com