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

如何将Powershell调用REST API返回的JSON结果导出为CSV文件

PowerShell 调用API返回JSON数据导出为CSV的实现方法

你可以直接修改原有脚本,先将API返回结果存储到变量,再提取data属性下的记录列表,最终通过Export-Csv导出即可,以下是完整示例:

基础版本:导出全部顶层字段

$uri = "https://www.SomeWebsite.com/api/orders"
$headers = @{
    'Content-Type' = 'application/json'
    'Authorization' = 'Bearer <MyTokenID>'
    'Accept'= 'application/json'
}
  
# 将接口返回结果存储到变量,避免重复请求
$apiResponse = Invoke-RestMethod -Uri $uri -Method GET -Headers $headers -Body $body

# 直接导出data字段下的所有记录的顶层字段到CSV
$apiResponse.data | Export-Csv -Path "订单导出结果.csv" -NoTypeInformation -Encoding UTF8

注意:这个版本导出的嵌套属性(比如attributes、relationships)会显示为对象类型名,如果你需要提取嵌套属性里的具体值,可以用下面的自定义字段版本

自定义字段版本:提取指定字段(含嵌套属性)

如果你需要选择特定字段、或者提取嵌套在attributes里的字段,可以用Select-Object的计算属性实现:

$apiResponse.data | Select-Object `
    # 提取顶层字段
    @{Name = '记录ID'; Expression = { $_.id }},
    @{Name = '记录类型'; Expression = { $_.type }},
    # 提取attributes下的嵌套字段,根据实际接口返回的字段名修改即可
    @{Name = '订单状态'; Expression = { $_.attributes.Status }},
    @{Name = '预约时间'; Expression = { $_.attributes.AppointmentTime }} |
Export-Csv -Path "自定义订单导出结果.csv" -NoTypeInformation -Encoding UTF8

额外说明

  • 添加-Encoding UTF8参数是为了避免CSV打开时出现中文乱码,如果你使用PowerShell 7及以上版本,可以替换为-Encoding UTF8NoBOM适配更多编辑器
  • 如果你需要保留全部顶层字段、只排除个别不需要的字段,可以用如下写法:
    $apiResponse.data | Select-Object * -ExcludeProperty links,relationships | Export-Csv -Path "订单导出结果.csv" -NoTypeInformation -Encoding UTF8
    

内容的提问来源于stack exchange,提问作者Depth of Field

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 21:15:09