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

如何在PowerShell中调用GET API并将返回JSON导出为CSV

解决方案

1. PowerShell调用API的修复方案

报错的原因是PowerShell默认将curl设为内置命令Invoke-WebRequest的别名,该别名不支持原生curl的-X参数,你可以选择以下任意一种方案执行调用:

方案一:推荐使用PowerShell原生REST请求命令(适配性最好)

# 构造请求头
$headers = @{
    "Content-Type" = "application/json"
    "Accept" = "application/json"
    "Authorization" = "Bearer 替换成你的实际AccessToken"
}
# 发送GET请求,返回结果会自动将JSON转换为PowerShell对象
$response = Invoke-RestMethod -Uri "https://www.myWebsite.com/api/orders" -Method Get -Headers $headers

方案二:使用原生curl命令

如果要沿用原curl的参数写法,直接调用系统原生curl程序即可,注意PowerShell的换行符为反引号(`)而非反斜杠:

curl.exe -X GET `
    -H 'Content-Type: application/json' `
    -H 'Accept: application/json' `
    -H 'Authorization: Bearer 替换成你的实际AccessToken' `
    https://www.myWebsite.com/api/orders

2. JSON结果转换为CSV保存

如果用了上面的方案一(Invoke-RestMethod),返回结果已经自动完成JSON解析,直接导出即可:

# 导出为CSV文件,NoTypeInformation参数用于去掉CSV头部的冗余类型描述行
$response | Export-Csv -Path "订单数据.csv" -Encoding UTF8 -NoTypeInformation

如果用了方案二的原生curl,需要先将返回的JSON字符串转换为PowerShell对象再导出:

# 先获取JSON字符串并转换
$jsonStr = curl.exe -X GET `
    -H 'Content-Type: application/json' `
    -H 'Accept: application/json' `
    -H 'Authorization: Bearer 替换成你的实际AccessToken' `
    https://www.myWebsite.com/api/orders
$response = $jsonStr | ConvertFrom-Json
# 导出CSV
$response | Export-Csv -Path "订单数据.csv" -Encoding UTF8 -NoTypeInformation

注意事项

如果返回的JSON存在嵌套层级的结构,需要先手动展开嵌套字段再导出,示例:

# 假设返回结果里的user_info是嵌套对象,包含name、phone字段,需要手动映射
$response | Select-Object order_id,create_time,total_amount,`
    @{Name="下单人姓名";Expression={$_.user_info.name}},`
    @{Name="下单人电话";Expression={$_.user_info.phone}} | 
    Export-Csv -Path "订单数据.csv" -Encoding UTF8 -NoTypeInformation

内容的提问来源于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 18:45:04