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

Python对比Salesforce与Sharepoint列表数据匹配结果的实现方法

Python实现Salesforce与SharePoint列表数据匹配对比

原代码问题说明

原有嵌套循环逻辑存在3个核心错误,无法输出预期结果:

  • 初始化的list_result是空列表,直接通过索引i给不存在的元素赋值会触发索引越界错误
  • 仅覆盖了ID匹配成功的分支,没有处理「仅Salesforce存在」「仅SharePoint存在」两类场景
  • 未对已匹配记录做去重标记,会遗漏仅存在于SharePoint侧的条目

正确实现方案

采用集合交并差计算的方式实现,时间复杂度为O(n+m),比嵌套循环的O(n*m)效率高很多,逻辑清晰不会遗漏场景:

# 读取两边数据源
sf_records = sf_api_data['records']
shp_records = shp_api_data

# 分别提取两边的ID集合
sf_id_set = {record['Id'] for record in sf_records}
shp_id_set = {record['SalesforceID'] for record in shp_records}

compare_result = []

# 1. 写入两边ID匹配成功的记录
for matched_id in sf_id_set.intersection(shp_id_set):
    compare_result.append({
        "SalesForce": matched_id,
        "Sharepoint": matched_id
    })

# 2. 写入仅在Salesforce存在的记录
for only_sf_id in sf_id_set.difference(shp_id_set):
    compare_result.append({
        "SalesForce": only_sf_id,
        "Sharepoint": "KO"
    })

# 3. 写入仅在Sharepoint存在的记录
for only_shp_id in shp_id_set.difference(sf_id_set):
    compare_result.append({
        "SalesForce": "KO",
        "Sharepoint": only_shp_id
    })

# 按预期格式打印输出
print(f"{'SalesForce':<12}Sharepoint")
for row in compare_result:
    print(f"{row['SalesForce']:<12}{row['Sharepoint']}")

输出效果

运行后会得到和预期完全一致的结果:

SalesForce  Sharepoint
123456      123456
896587      KO
KO          456789

注:如果需要按特定规则排序结果,只需要在打印前对compare_result列表做排序处理即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.31 00:39:17