【问题标题】:Convert PowerShell JSON to a CSV file将 PowerShell JSON 转换为 CSV 文件
【发布时间】:2021-03-31 06:30:12
【问题描述】:

我没有太多使用 PowerShell。我有一个返回 JSON 的 API 请求,我需要将其转换为 CSV 或 xlsx 文件。

$output = Get-SurveyParticipents `
 -url "https://orxsurveys.limequery.com/admin/remotecontrol" `
 -session $sessionKey `
 -id "5133965" `
 -start "0" `
 -limit "2" `
 -unused $False `
 -attributes ["completed", "usesleft"]

Write-Host($output | ConvertTo-Json)

{
    "id":  1,
    "result":  [
                   {
                       "tid":  "6",
                       "token":  "35ddmyQTlNpzLat",
                       "participant_info":  "@{firstname=Hsdfng; lastname=Gsdfh; email=gosdfdsfz.com}"
                   },
                   {
                       "tid":  "7",
                       "token":  "nQ_S838LjYT4mR6",
                       "participant_info":  "@{firstname=Ofdlga; lastname=Yadfdfa; email=olsdfdsfivska@axsdfdsfnce.com}"
                   }
               ],
    "error":  null
}

participant_info 看起来不像普通的 JSON 结构。

我也不确定如何将此 JSON 转换为 CSV。比如:

$output | ConvertTo-Json  | Export-Csv -Path "c:\Scripts"

【问题讨论】:

    标签: json powershell api


    【解决方案1】:

    您不需要同时使用Export-CsvConvertTo-JsonExport-Csv 会将 powershell 对象流转换为包含 CSV 记录的文件。

    假设您的 json 输出中的“结果”数组中的对象是您想要的,您可以尝试以下操作:

    $output.result | Export-Csv -NoTypeInformation foo.csv
    

    您说participant_info 不是Json 是正确的。你必须自己处理这个。 ConvertFrom-StringData 可能会有所帮助。

    【讨论】:

      猜你喜欢
      • 2015-08-23
      • 1970-01-01
      • 1970-01-01
      • 2017-09-18
      • 2017-09-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多