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

如何基于VMID键匹配两份JSON输出并替换GRP_Members字段值

JSON匹配替换实现方案

核心逻辑是先构建VMID到VMName的快速映射表,再遍历分组数据批量替换成员值,全程无复杂逻辑,处理效率高。

实现步骤

  • 预处理输入:先将两份JSON片段补全为合法JSON格式(原始片段缺外层数组包裹、部分字符串值缺引号、末尾存在冗余逗号,若数据源是接口/文件返回的标准JSON可跳过这步)
  • 构建映射字典:遍历第一份VM数据,以VMID为键、对应VMName为值生成字典,后续匹配查询时间复杂度为O(1)
  • 批量替换成员:遍历第二份分组数据,对每个分组下GRP_Members数组内的所有VMID,从映射字典中取出对应VMName替换原值,未匹配到的VMID默认保留原值避免数据丢失
  • 输出结果:按要求的结构导出处理后的分组数据即可

可直接运行的Python实现代码

import json

# 第一份JSON:VMID与VMName映射关系
vm_list = [
    {
        "VMID": "7283949-4658-3i93899-2bb1-36748",
        "VMName": "terra01-dc-domain"
    },
    {
        "VMID": "833bjhds949-42658-3idbj46-2bb1-33bsj",
        "VMName": "terra02-dc-domain"
    }
]

# 构建VMID->VMName映射表
vm_map = {item["VMID"]: item["VMName"] for item in vm_list}

# 第二份JSON:分组与成员VMID关系
group_list = [
    {
        "GroupName": "default.DC2-external-msw",
        "GRP_Members": [
            "7283949-4658-3i93899-2bb1-36748"
        ]
    },
    {
        "GroupName": "default.DC2-external-msw-svr2016-dns",
        "GRP_Members": [
            "833bjhds949-42658-3idbj46-2bb1-33bsj"
        ]
    }
]

# 执行替换
processed_group = []
for group in group_list:
    processed_group.append({
        "GroupName": group["GroupName"],
        "GRP_Members": [vm_map.get(vmid, vmid) for vmid in group["GRP_Members"]]
    })

# 打印输出结果
print(json.dumps(processed_group, indent=4, ensure_ascii=False))

运行结果

注:你给出的预期输出样例中第二个分组的成员值存在笔误,按VMID映射关系应对应terra02-dc-domain,实际运行输出如下:

[
    {
        "GroupName": "default.DC2-external-msw",
        "GRP_Members": [
            "terra01-dc-domain"
        ]
    },
    {
        "GroupName": "default.DC2-external-msw-svr2016-dns",
        "GRP_Members": [
            "terra02-dc-domain"
        ]
    }
]

适配说明

  • 若GRP_Members内存在多个VMID,现有逻辑无需修改即可支持批量替换
  • 若数据源是本地JSON文件,可直接用json.load(open('你的文件路径.json', 'r', encoding='utf-8'))读取替换代码里的硬编码数据部分
  • 若需要对未匹配到VMID的条目做特殊标记,修改vm_map.get(vmid, vmid)里的默认返回值即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 16:06:22