You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用PowerShell拆分数据并重新整理数组结构?

PowerShell数据拆分实现方案

你需要将每个KEY对应的分号分隔DATA拆分为多行,每个DATA值对应同一个KEY,同时过滤空DATA项。以下是修改后的代码及说明:

需求示例

原始数据结构

KEYDATA
KEY-AName1;Name2;Name3
KEY-B
KEY-CName1

目标数据结构

KEYDATA
KEY-AName1
KEY-AName2
KEY-AName3
KEY-CName1

修改后的代码

$tempcontent = $webrequscontent.Content | ConvertFrom-Json

$exportdata = @()

if($tempcontent.total -eq 0){
    $exportdata = [PSCustomObject]@{
        key = ""
        data = " "
    }
}
else {
    foreach ($obj in $tempcontent.issues) 
    {
        # 提取匹配内容并拆分为数组,过滤空值和纯空格项
        $dataItems = (($obj.fields.customfield_16170 | Select-String -Pattern $pattern -AllMatches).Matches.value) -split ';' | Where-Object { $_ -notmatch '^\s*$' }
        
        # 遍历每个拆分后的Data项,生成独立记录
        foreach ($item in $dataItems) {
            $exportdata += [PSCustomObject]@{
                key = $obj.key
                Data = $item.Trim()
            }
        }
    }
}

# 导出为CSV文件
$exportData | Export-CSV "H:\list.csv" -Delimiter ';' -NoTypeInformation 

关键说明

  1. 拆分与过滤:用-split ';'把分号分隔的DATA拆成数组,再通过Where-Object过滤掉空字符串和仅含空格的项,避免生成无效行。
  2. 生成多行记录:遍历拆分后的每个DATA项,为每个项创建带对应KEY的PSCustomObject,确保每个DATA值单独占一行。
  3. 空数据可选处理:如果需要保留KEY-B这类无DATA的记录,可添加如下代码到foreach ($obj in $tempcontent.issues)块中(按需启用):
    # 可选:保留空DATA的KEY记录
    if (-not $dataItems) {
        $exportdata += [PSCustomObject]@{
            key = $obj.key
            Data = ""
        }
    }
    

内容的提问来源于stack exchange,提问作者JGaard

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 11:10:23