Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Powershell中将JSON转换为Csv列_Powershell_Csv - Fatal编程技术网

在Powershell中将JSON转换为Csv列

在Powershell中将JSON转换为Csv列,powershell,csv,Powershell,Csv,我想将我的JSON转换成下面的CSV输出。我正在努力将结果数据解析为两列 CSV输出: 我的JSON输出如下: 下面的代码提取结果,但是时间戳和值都在同一列中 $Output1 = ConvertTo-Json $JSON $Output2 = ConvertFrom-Json $Outage2 | Select -ExpandProperty 'value' | Select -ExpandProperty 'results' 任何帮助都将不胜感激 干杯 到目前为止,您已经使用json文

我想将我的JSON转换成下面的CSV输出。我正在努力将结果数据解析为两列

CSV输出:

我的JSON输出如下:

下面的代码提取结果,但是时间戳和值都在同一列中

$Output1 = ConvertTo-Json $JSON
$Output2 = ConvertFrom-Json $Outage2 | Select -ExpandProperty 'value' |  Select -ExpandProperty 'results' 
任何帮助都将不胜感激


干杯

到目前为止,您已经使用json文档中所有以空格分隔的字符串值创建了一个字符串数组$output2-到目前为止,一切都很好

现在,我们可以使用-split运算符将两列拆分为单独的字符串:

$results = $output2 |ForEach-Object {
    $ts,$value = -split $_

    [pscustomobject]@{
        TIMESTAMP = $ts
        VALUE = $value
    }
}
现在我们有了一个对象数组,其中两个值被适当地命名为属性TIMESTAMP和VALUE,我们可以使用Export Csv:


到目前为止,您已经使用json文档中所有以空格分隔的字符串值创建了一个字符串数组$output2-到目前为止,一切都很好

现在,我们可以使用-split运算符将两列拆分为单独的字符串:

$results = $output2 |ForEach-Object {
    $ts,$value = -split $_

    [pscustomobject]@{
        TIMESTAMP = $ts
        VALUE = $value
    }
}
现在我们有了一个对象数组,其中两个值被适当地命名为属性TIMESTAMP和VALUE,我们可以使用Export Csv:


只需按空间分割这些值:

(ConvertFrom-Json $JSON).value.results | `
  % { $pair = $_ -split ' '; [PSCustomObject]@{Timestamp=$pair[0]; Value=$pair[1]}} `
  | ConvertTo-Csv -NoTypeInformation

只需按空间分割这些值:

(ConvertFrom-Json $JSON).value.results | `
  % { $pair = $_ -split ' '; [PSCustomObject]@{Timestamp=$pair[0]; Value=$pair[1]}} `
  | ConvertTo-Csv -NoTypeInformation

把结果分成两半。您可以通过管道将其导出到csv

'1581292800000 270',
'1581292860000 347',
'1581292920000 348' | foreach { 
  $timestamp,$value = -split $_ 
  [pscustomobject]@{Timestamp = $timestamp
                        Value = $value} 
}


Timestamp     Value
---------     -----
1581292800000 270
1581292860000 347
1581292920000 348

把结果分成两半。您可以通过管道将其导出到csv

'1581292800000 270',
'1581292860000 347',
'1581292920000 348' | foreach { 
  $timestamp,$value = -split $_ 
  [pscustomobject]@{Timestamp = $timestamp
                        Value = $value} 
}


Timestamp     Value
---------     -----
1581292800000 270
1581292860000 347
1581292920000 348

同意。OP提供了一个很好的示例,并且做得很好,完成了90%的工作!同意。OP提供了一个很好的示例,并且做得很好,完成了90%的工作!