如何将Invoke-RestMethod的数据结果导入CSV文件?

时间:2019-06-03 12:57:52

标签: powershell

我正在尝试将来自REST调用的结果(数据)转换为CSV文件。

我的代码是:

$results = Invoke-RestMethod -Method Get -Uri $url -Header $bearer -ContentType 'application/json' 
$results

,然后返回:

data                                                                                                             
----                                                                                                             
{@{type=flight-offer; id=1559566119876--1838046263; offerItems=System.Object[]}, @{type=flight-offer; id=15595...

我想将每个offerItems对象的值放入CSV文件中。

1 个答案:

答案 0 :(得分:4)

展开data属性,然后将嵌套的对象导出为CSV:

$results |
    Select-Object -Expand data |
    Export-Csv 'C:\path\to\output.csv' -NoType

但是,由于您的数据对象显然包含一个数组(offerItems=System.Object[]),因此您必须首先将该数组转换为字符串,例如像这样:

... |
    Select-Object -Expand data |
    Select-Object *,@{n='offerItems';e={$_.offerItems -join ','}} -Exclude offerItems |
    ...

合并操作可能会有所不同,具体取决于数组保存的数据类型。