You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将PowerShell中API返回的数组列表导出为带表头的CSV?

解决PowerShell API响应转带表头CSV的问题

你当前的问题在于把每个字段的所有值单独提取为数组,导致无法关联每个用户的三个属性。正确的做法是逐个遍历API返回的每个worker条目,为每个条目生成包含对应字段的对象,再统一导出为CSV。

修改后的脚本如下:

$headers.Add("Authorization", "Bearer $access_token")

# 获取API响应
$response = Invoke-RestMethod -Uri $URL -Method GET -Headers $headers -DisableKeepAlive -Certificate $certx

# 遍历每个worker,构建自定义对象
$workerData = foreach ($worker in $response.workers) {
    [PSCustomObject]@{
        GivenName  = $worker.person.legalName.givenName
        FamilyName = $worker.person.legalName.familyName1
        # 处理邮箱:如果一个worker有多个邮箱,这里取第一个;如需全部可改用 -join ';'
        Email      = $worker.businessCommunication.emails[0].emailUri
    }
}

# 导出为CSV文件,-NoTypeInformation去掉默认的类型信息行
$workerData | Export-Csv -Path "C:\Users\workers.csv" -NoTypeInformation -Encoding UTF8

关键说明:

  • 遍历$response.workers逐个处理每个用户,确保三个字段属于同一个用户
  • 用[PSCustomObject]构建包含指定表头的对象,PowerShell的Export-Csv会自动将对象属性作为CSV列标题
  • 邮箱处理部分:如果API返回的每个worker可能有多个邮箱,可根据需求调整,比如用$worker.businessCommunication.emails.emailUri -join ';'将多个邮箱用分号分隔

这样导出的CSV会直接带有GivenName、FamilyName、Email表头,每行对应一个worker的完整数据。

内容的提问来源于stack exchange,提问作者Raif

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 10:01:01