我提取从Facebook一个JSON,这是它的样子:PowerShell的 - 通过解析JSON创建CSV
pressions_by_paid_non_paid_unique/day
{
"data": [
{
"name": "page_impressions_by_paid_non_paid_unique",
"period": "day",
"values": [
{
"value": {
"total": 549215,
"unpaid": 549215,
"paid": 0
},
"end_time": "2017-06-02T07:00:00+0000"
},
我想什么是创建一个CSV文件,这要么是这样的:
总,无偿,支付,结束时间
549215,549215,0,2017-06-02T07:00:00 + 0000
或
值,NUM,END_TIME
总,549215,2017-06-02T07:00:00 + 0000
未付,549215,2017-06-02T07:00:00 + 0000
支付,0,2017-06-02T07:00:00 + 0000
我想出什么样的主意是:
$file = "D:\BI_LP\001-Solutions_Sources\script\Powershell\curl\facebook21.json"
Get-Content $file -Raw |
ConvertFrom-Json |
Select -Expand data |
Select -Expand values | % {
$end_time = $_.end_time
$value = $_.value
$_.value | select @{n='end_time';e={$end_time}}, @{n='value';e={$value}}
}
这给了我:
end_time value
-------- -----
2017-05-21T07:00:00+0000 @{total=608837; unpaid=608837; paid=0}
2017-05-22T07:00:00+0000 @{total=682090; unpaid=682090; paid=0}
2017-05-23T07:00:00+0000 @{total=885274; unpaid=885274; paid=0}
2017-05-24T07:00:00+0000 @{total=810845; unpaid=810845; paid=0}
2017-05-25T07:00:00+0000 @{total=755453; unpaid=755453; paid=0}
2017-05-26T07:00:00+0000 @{total=629096; unpaid=629096; paid=0}
有没有人有什么建议?
很好听。就我个人而言,我发现你用来创建输出对象的'select'构造太混乱了,所以我更愿意构建一个自定义对象并输出它。例如'$ obj = [pscustomobject] @ {...}; $ obj'。 –