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

如何将包含Resource_id的多维度匹配结果转换为指定聚合格式?

实现思路

  • 核心逻辑是对相同Resource_id下的同维度匹配得分做累加:遍历原始数据中每个资源id对应的所有条目,将同维度的数值相加,最终按指定格式输出合并后的结果即可。

代码实现(Python示例)

# 原始输入数据
raw_data = {
    '1': [
        {"Resource_id": 1, "Rolemaching": 5},
        {"Resource_id": 1, "Rolemaching": 5},
        {"Resource_id": 1, "Technologymaching": 25},
        {"Resource_id": 1, "Technologymaching": 25},
        {"Resource_id": 1, "Educationmaching": 1.6666666666666667},
        {"Resource_id": 1, "Educationmaching": 3.3333333333333335}
    ],
    '2': [{"Resource_id": 2, "Domainmaching": 10}]
}

result = []
for items in raw_data.values():
    merged = {}
    for item in items:
        # 写入Resource_id,仅需写入一次
        if "Resource_id" not in merged:
            merged["Resource_id"] = item["Resource_id"]
        # 累加同维度的匹配得分
        for k, v in item.items():
            if k == "Resource_id":
                continue
            merged[k] = merged.get(k, 0) + v
    result.append(merged)

# 按指定格式打印结果
for res in result:
    print("{")
    for idx, (k, v) in enumerate(res.items()):
        end = "," if idx != len(res)-1 else ""
        print(f"  {k} : {v}{end}")
    print("}")

输出说明

运行上述代码后输出结果如下:

{
  Resource_id : 1,
  Rolemaching : 10,
  Technologymaching : 50,
  Educationmaching : 5.0
}
{
  Resource_id : 2,
  Domainmaching : 10
}

注:你给出的目标输出中Technologymaching为25、Educationmaching为4.5和原始数据累加结果不一致,如果需要按去重、平均值等其他规则统计,修改对应维度的数值计算逻辑即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 23:27:01