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

如何修改PowerShell代码:仅返回含RatedOI的Operator实体数据

问题:筛选同时包含Operator类型和RatedOI字段的实体

当前PowerShell程序遍历JSON文件的entitiesData.Entities集合,筛选entityType为"Operator"的实体并返回其id和RatedOI字段值,但存在问题:当实体是Operator但未包含RatedOI字段时,仍会返回id。需要调整为仅当实体同时为Operator且包含RatedOI字段时,才返回对应的id和RatedOI值。

输出对比

预期输出

id                                    RatedOI 
----                                  ------
6fe06340-072f-49b2-8d5a-449e3db80002   False

实际输出

Id                                     RatedOI
  ----                                  ------
  7af50dbb-7ea3-4458-adfe-a82198a80001
  7af50dbb-7ea3-4458-adfe-a82198a80002  False  

示例数据与现有代码

JSON结构

{"id": "e0b8a6aa-2675-4d93-86ff-6a51a0daea85", "_etag": "\"ba00b86de-0000-0100-00dd00-671029b20000", "LOB": "A", "RD": {"PSM": {}, "entities": [{}], "qid": "638ee347-42ed-441c-a6ff-d6c99cf62df55", "peakData": {}, "PDR": []}, "ASC": "Committed", "entitiesData": {"entities": [{}, {"id": "b0000000-0000-0000-0000-00000000000b", "entityType": "InsuranceHistoryUserResponse", "ordinal": 0, "characteristics": {"PBILR": {"stringValue": "XYZ"}, "PBILRC": {"stringValue": "XYZ"}, "PISR": {"stringValue": "XeYZ"}}}, {"id": "7af50dbb-7ea3-4458-adfe-a82198a80001", "entityType": "Operator", "ordinal": 0, "characteristics": {"FirstName": {"stringValue": "Joe"}, "ODLNUR": {"stringValue": "A82539878"}, "RatedOI2": {"boolValue": true}}}, {"id": "b0000000-0000-0000-0000-00000000000", "entityType": "IHUR", "ordinal": 0, "characteristics": {"PBILR": {"stringValue": "XYZ"}, "PBILRC": {"stringValue": "XYZ"}, "PISR": {"stringValue": "XYZ"}}}, {"id": "7af50dbb-7ea3-4458-adfe-a82198a80002", "entityType": "Operator", "ordinal": 0, "characteristics": {"FirstName": {"stringValue": "Joe"}, "ODLNUR": {"stringValue": "3333"}, "RatedOI": {"boolValue": false}}}]}}

现有PowerShell代码

Set-Location C:\Users\A187515\Downloads\
$file = Get-ChildItem -Path C:\Users\A187515\Downloads\ -Filter *.json | Sort-Object LastAccessTime -Descending | Select-Object -First 1
(Get-Content -Raw $file | ConvertFrom-Json) | ForEach-Object {
  foreach ($entity in $_.EntitiesData.Entities) {
    if ($entity.EntityType -eq 'Operator' -and $entity.Characteristics -isnot [array]) {
      $entity | Select-Object `
        id, 
        @{ Name = 'RatedOI'; Expression = { 
            $_.characteristics.RatedOI.boolValue } 
        }
    }
  }
}

修改后的代码

Set-Location C:\Users\A187515\Downloads\
$file = Get-ChildItem -Path C:\Users\A187515\Downloads\ -Filter *.json | Sort-Object LastAccessTime -Descending | Select-Object -First 1
(Get-Content -Raw $file | ConvertFrom-Json) | ForEach-Object {
  foreach ($entity in $_.EntitiesData.Entities) {
    # 新增RatedOI字段存在性检查
    if ($entity.EntityType -eq 'Operator' -and $entity.Characteristics -isnot [array] -and $null -ne $entity.characteristics.RatedOI) {
      $entity | Select-Object `
        id, 
        @{ Name = 'RatedOI'; Expression = { 
            $_.characteristics.RatedOI.boolValue } 
        }
    }
  }
}

代码说明

在原有判断条件基础上,添加$null -ne $entity.characteristics.RatedOI检查,确保只有当characteristics下存在RatedOI属性时,才输出该实体的信息,直接过滤掉符合Operator类型但缺少RatedOI字段的无效记录。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 09:57:04