Powershell JSON в CSV преобразование и экспорт - PullRequest
0 голосов
/ 06 августа 2020

У меня есть следующий файл JSON (пример вывода вызова Invoke-RestMethod) https://filebin.net/t3dtujxnssr6dcic/0.json?t=j2lr5rnb. Я пытаюсь запустить команду Powershell, чтобы экспортировать это в CSV, но продолжаю сталкиваться с ошибками, в результате которых CSV пуст или только одна строка, показывающая SystemObject.

Я знаю, что заголовки для столбцов CSV должны быть: noticeId, title , solicitationNumber, Department, subTier, office, postedDate, type, baseType, archiveType, archiveDate, typeOfSetAsideDescription, typeOfSetAside, responseDeadLine, naicsCode, classificationCode, active, award, pointOfContact, description, organizationType, officeAddressLink, uiPerformLink, uiPerformanceLinks / 0iPerfect , resourceLinks

моя команда:

((Get-Content -Path $getpath) | ConvertFrom-Json).results | Export-CSV -Path $topath -NoTypeInformation

Я получаю следующую ошибку:

Export-Csv : Cannot bind argument to parameter 'InputObject' because it is null.
At line:1 char:61
+ ... nvertFrom-Json).results | Export-CSV -Path $topath -NoTypeInformation
+                               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidData: (:) [Export-Csv], ParameterBindingValidationException
    + FullyQualifiedErrorId : ParameterArgumentValidationErrorNullNotAllowed,Microsoft.PowerShell.Commands.ExportCsvCo
   mmand

Спасибо,

1 Ответ

0 голосов
/ 07 августа 2020

Как ребята упомянули в комментариях, похоже, что вы пытаетесь получить данные, хранящиеся в файле JSON в поле «ВозможностиДанные».

Решение так же просто, как изменение .results на .opportunitiesData

Ваша строка должна быть:

((Get-Content -Path $getpath) | ConvertFrom-Json).opportunitiesData | Export-CSV -Path $topath -NoTypeInformation
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...