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

Python中WBEM实例指定键值输出的条件语句实现需求

解决方案:过滤WBEM实例的指定键值对打印

你要实现的其实就是只输出指定字段的键值对,这个需求很好解决,只需要加一个目标字段列表,然后在遍历的时候做个判断就行,甚至可以处理字段不存在的情况避免报错。

修改后的完整代码

import pywbem

# 保留你原有的连接初始化代码
conn = pywbem.WBEMConnection(server_uri, (user, password), default_namespace='root/cimv2')

ClassesToCheck = [
    'CIM_Processor',
]

# 定义你想要打印的指定键列表,按需添加或修改
target_keys = ['ModelName', 'Stepping', 'EnabledProcessorCharacteristics', 'CPUStatus']

for className in ClassesToCheck:
    instance_list = conn.EnumerateInstances(className)
    print(instance_list)
    for instance in instance_list:
        if verbose:
            print()
        print(f'Instance of : {className}')
        print('============================================================')
        # 遍历目标键列表,而非所有键值对
        for key in target_keys:
            # 用get方法避免键不存在时抛出KeyError,默认值设为"N/A"表示该字段缺失
            value = instance.get(key, "N/A")
            print(f'{key}: {value}')

关键逻辑说明

  1. 统一管理目标字段:把你关心的ModelName、Stepping等字段放到target_keys列表里,后续要加新字段直接修改这个列表就行,维护起来很方便;
  2. 定向遍历字段:不再遍历实例的所有键值对,而是直接遍历目标字段列表,精准只处理你需要的内容;
  3. 安全获取字段值:用instance.get(key, "N/A")替代直接取instance[key],如果某个实例没有这个字段,会返回默认值"N/A",不会触发KeyError报错;
  4. 格式优化:用f-string让打印的内容更清晰易读(你也可以保留原来的%格式化方式,看个人习惯)。

注意:WBEM返回的键名通常是大小写敏感的,要确保target_keys里的名称和实例实际返回的键名完全一致,否则会匹配不到哦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 08:22:23