json - Powershell 将嵌套的 Json 导出为 CSV 作为行
问题描述
Json 包含以下结构,我想将值转换为行,然后使用 Powershell 将行插入到 CSV 文件中:
预期的 My CSV 输出将与下面的输出类似。我希望为每个 URL 和其他图像属性重复 GUID。非常感谢您调查请求并提供帮助。
CSV 输出样本
enter code here
"_embedded": {
"assets": [{
"guid": "49EDBE70-2B28-3AD7-B993-7F68972BA1",
"images": [{
"URL": "https://www.rc.com/eqent_images/2020183/thumb/12014855_1.jpg",
"imageSize": "thumb",
"imageType": "OTHER",
"angleNo": 1,
"photoGuid": "aeb75f64-9005-472-a85a-f857a7b8e27"
}, {
"URL": "https://www.rc.com/eqt_images/2020183/largest/12014855_1.jpg",
"imageSize": "largest",
"imageType": "OTHER",
"angleNo": 1,
"photoGuid": "aeb75f64-9005-47f2-a85a-f857a7b8e27"
}],
"_links": {
"self": {
"href": "http://www.rc.com/asset-images/guid/49EDBE70-2B9-3AD7-B993-7F670472BA10?imageSize=thumbnail&imageSize=largest&angleNo=1{&imageType}",
"templated": true
}
}
}, {
"guid": "D7C5B69C-083C-7598-2762-B57D64B4D82",
"images": [{
"URL": "https://www.rc.com/equipment_images/2090183/thumb/12050336_1.jpg",
"imageSize": "thumb",
"imageType": "OTHER",
"angleNo": 1,
"photoGuid": "11e196a8-02d3-42ae-9620-1a992516a50"
}, {
"URL": "https://www.rc.com/eqnt_images/2020183/largest/12050336_1.jpg",
"imageSize": "largest",
"imageType": "OTHER",
"angleNo": 1,
"photoGuid": "11e196a8-02d3-42ae-9620-1a7f251a950"
}],
"_links": {
"self": {
"href": "http://www.rc.com/asset-images/guid/D7C8969C-083C-7598-2762-B57D6994D82E?imageSize=thumbnail&imageSize=largest&angleNo=1{&imageType}",
"templated": true
}
}
}]
},
"_links": {
"self": {
"href": "http://www.rc.com/assetdata-imagescall/search/byGUIDSString?imageSize=thumbnail&imageSize=largest&angleNo=1&page=0&size=1500"
}
},
"page": {
"size": 1500,
"totalElements": 2,
"totalPages": 1,
"number": 0
}
}
解决方案
如果您有一个名为 的正确格式的 JSON j.json
,您可能会执行以下操作:
# Read JSON as a PowerShell Object
$obj = Get-Content j.json | ConvertFrom-Json
# Loop through each asset as it contains the GUIDs and Images
$output = $obj._embedded.assets | Foreach-Object {
# Keep track of Guid as we loop through images
$guid = $_.Guid
# Loop through the images to find each URL
# Use calculated property to create GUID property
$_.Images | Select-Object @{n='GUID';e={$guid}},URL
}
# Convert to CSV on console only. Not needed if outputting to file
$output | ConvertTo-Csv -NoType
# Output to CSV file
$output | Export-Csv -Path output.csv -NoType
有关计算属性的信息,请参见选择对象。
推荐阅读
- javascript - 将连接元素数组转换为树
- scripting - 如何解决热键冲突?
- sql - Oracle SQL 错误“缺少表达式”(但相同的 SQL 查询在 MySQL 中有效)
- android - Android 12 RenderEffect 模糊不是应用于背景而是应用于整个视图
- php - 得到错误 preg_match(): 参数 #2 ($subject) 必须是字符串类型,给定数组
- r - 在 r 中按季度绘制具有不同值和类别的数据框作为直方图
- python - VS 代码 Python 设置
- android - 按钮启用 false 默认背景和文本颜色
- angular - 单击选项卡时如何执行功能
- php - 如何从数组中获取相乘的数组键的总和