首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Powershell中的Json到CSV

Powershell中的Json到CSV
EN

Stack Overflow用户
提问于 2018-02-20 09:18:12
回答 2查看 1.9K关注 0票数 1

我正在使用Powershell,使用LogAnalyticsQuery模块使用Invoke-LogAnalyticsQuery查询Azure日志分析。

我有结果

代码语言:javascript
复制
{
    "tables": [
        {
            "name": "PrimaryResult",
            "columns": [
                {"name": "Computer","type": "string"},
                {"name": "TimeGenerated","type": "datetime"},
                {"name": "AggregatedValue","type": "real"
                }
            ],
            "rows": [
                ["VPN-Server","2018-02-20T07:30:00Z",5.083333333333333],
                ["SARMAD-SurfacePro4","2018-02-20T07:30:00Z",14.598250052664012],
                ["VPN-Server","2018-02-20T07:00:00Z",4.9523809523809526],
                ["SARMAD-SurfacePro4","2018-02-20T07:00:00Z",12.104500129109331],
                ["SARMAD-SurfacePro4","2018-02-20T08:00:00Z",20.936097813082174],
                ["VPN-Server","2018-02-20T08:00:00Z",4.245614035087719]
            ]
        }
    ]
}

从上面的示例中,我如何使用powershell将其转换为类似的内容?

代码语言:javascript
复制
Reportname, Computer, TimeGenerated, AggregatedValue

Manual Value, JsonValue, JsonValue, JsonValue
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-02-20 11:17:27

您可以这样做:

代码语言:javascript
复制
function Get-Tables
{
    param([Parameter(ValueFromPipeline=$true)]$Json)

    process
    {
        foreach ($table in ($Json | ConvertFrom-Json).tables)
        {
            foreach ($row in $table.rows)
            {
                $result = New-Object PSObject
                $columnIndex = 0

                foreach ($column in $table.columns)
                {
                    Add-Member -InputObject $result -MemberType NoteProperty -Name $column.Name -Value ($row[$columnIndex++])
                }

                $result
            }
        }
    }
}

$json | Get-Tables | Export-Csv

其中$json是字符串变量,其中包含问题示例中的值。

代码语言:javascript
复制
$json = '{  "tables": [   ...  ] }'
票数 1
EN

Stack Overflow用户

发布于 2018-02-20 09:22:09

您可以使用convertfrom-json并最终使用export-csv导出:

代码语言:javascript
复制
$a='{"tables":[{"name":"PrimaryResult","columns":[{"name":"Computer","type":"string"},{"name":"TimeGenerated","type":"datetime"},{"name":"AggregatedValue","type":"real"}],"rows":[["VPN-Server","2018-02-20T07:30:00Z",5.083333333333333],["SARMAD-SurfacePro4","2018-02-20T07:30:00Z",14.598250052664012],["VPN-Server","2018-02-20T07:00:00Z",4.9523809523809526],["SARMAD-SurfacePro4","2018-02-20T07:00:00Z",12.104500129109331],["SARMAD-SurfacePro4","2018-02-20T08:00:00Z",20.936097813082174],["VPN-Server","2018-02-20T08:00:00Z",4.245614035087719]]}]}'
($a | ConvertFrom-Json).tables.columns.name

希望能帮上忙。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48881610

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档