如何将指定格式的JSON字符串转换并追加到CSV文件?(PowerShell)
将JSON数据追加到指定格式CSV的实现方法
核心思路
先把JSON字符串解析为PowerShell对象,再遍历转换为CSV要求的行结构,最后追加到目标CSV文件。
完整代码示例
# 替换成你的函数返回的JSON字符串 $jsonStr = '{"TownA":{"female":512,"male":468},"TownB":{"female":748,"male":845}}' # 解析JSON为PowerShell对象 $townData = $jsonStr | ConvertFrom-Json # 遍历生成符合CSV结构的自定义对象 $csvRows = foreach ($town in $townData.PSObject.Properties) { # 遍历每个城镇下的性别数据 foreach ($genderEntry in $town.Value.PSObject.Properties) { [pscustomobject]@{ town = $town.Name # 城镇名称 value = [float]$genderEntry.Value # 数值转成浮点型 gender = $genderEntry.Name # 性别 } } } # 追加到CSV文件,-Append自动处理表头(文件不存在则创建,存在则追加行) $csvRows | Export-Csv -Path "C:\目标文件路径\人口数据.csv" -Append -NoTypeInformation -Encoding UTF8
关键细节说明
- 解析JSON:
ConvertFrom-Json直接把JSON字符串转成可遍历的PowerShell对象,不用手动拼接对象结构。 - 遍历数据:用
PSObject.Properties来获取动态的属性(比如TownA、TownB,以及female、male),避免硬编码城镇或性别名称,适配更多数据场景。 - 追加CSV:
-Append参数会自动处理表头逻辑:如果目标文件不存在,会先写入表头再写数据;如果文件已存在,直接追加数据行,不会重复输出表头。-NoTypeInformation用来去掉PowerShell默认添加的类型注释行。
内容的提问来源于stack exchange,提问作者TheRob87
相关产品推荐
相关产品推荐

