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

PowerShell中统计JSON响应里acc_name字段值的出现次数

PowerShell统计JSON响应中值的出现次数

我在PowerShell中编写了一段foreach循环用于遍历JSON响应,代码如下:

foreach ($myvar in $response) { 
    $getvalues = $myvar.acc_name
    Write-Host $getvalues
}

当前输出结果为每行一个值:

abc
abc
www
abc
bbb
abc

我需要添加代码统计各值的出现次数,并按以下格式输出结果:

abc 4
www 1
bbb 1

解决方案

方法一:使用PowerShell内置的Group-Object命令(推荐)

这是最简洁高效的方式,利用PowerShell原生命令完成分组统计:

# 提取所有acc_name值,分组后输出名称和次数
$response | ForEach-Object { $_.acc_name } | Group-Object | ForEach-Object {
    Write-Host "$($_.Name) $($_.Count)"
}

或者更精简的写法:

($response | Select-Object -ExpandProperty acc_name) | Group-Object | ForEach-Object { "$($_.Name) $($_.Count)" }

Group-Object会自动将相同的值归类,每个分组对象包含Name(分组的目标值)和Count(该值出现的次数),直接遍历输出即可。

方法二:手动用哈希表统计

如果想保留原foreach循环的结构,可以通过哈希表手动计数:

# 创建空哈希表存储计数
$counts = @{}

foreach ($myvar in $response) { 
    $getvalues = $myvar.acc_name
    # 对应值的计数加1,不存在则默认初始化为1
    $counts[$getvalues]++
}

# 遍历哈希表输出结果
foreach ($key in $counts.Keys) {
    Write-Host "$key $($counts[$key])"
}

哈希表的键对应acc_name的值,值对应出现的次数,每次循环更新计数,最后遍历输出。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 02:12:33