首页 > 解决方案 > 在 PowerShell 中使用 GET 并将 JSON 导出为 CSV

问题描述

我正在使用以下 CURL 命令从 API 读取/获取表数据:

curl -X GET \
    -H 'Content-Type: application/json' \
    -H 'Accept: application/json' \
    -H 'Authorization: Bearer *myAccessToken*' \
    https://www.myWebsite.com/api/orders

此命令/API 调用返回 JSON 格式的表。我需要做两件事。

[1] 我需要在 powershell 中运行它。我试过使用上面的代码,并返回一个一般的语法错误:

A parameter cannot be found that matches parameter name 'X'.

[2] 在 PowerShell 中,将 JSON 输出转换并保存为 CSV 文件

有任何想法吗?谢谢!

标签: powershellrestcsvcurlget

解决方案


您可以使用Invoke-RestMethodCmdlet 向 RESTful Web 服务发送HTTP 或 HTTPS 请求。

$uri = "https://www.myWebsite.com/api/orders"
$headers = @{
    'Content-Type' = 'application/json'
    'Authorization' = 'Bearer <AccessToken>'
    'Accept'= 'application/json'
}
$response = Invoke-RestMethod -Uri $uri -Method GET -Headers $headers

PowerShell 根据数据类型格式化响应。对于 JavaScript 对象表示法 (JSON) 或 XML,PowerShell 将内容转换或反序列化为[PSCustomObject]对象。因此,您可以选择要导出的列并将其通过管道传输到Export-CsvCmdlet

$response | Select ColumnName1,ColumnName2 | Export-Csv -Path "filename.csv" -NoTypeInformation

推荐阅读