影刀RPA 多数据源聚合Excel网页API数据合并到统一报表真实业务中很少只有一个数据源。订单数据在网页后台客户信息在CRM的API里库存数据在Excel里。需要把三者按某种关联字段拼到一起生成一份完整报表。这篇文章讲怎么在影刀里做多数据源聚合。典型场景数据源A网页采集 → 订单列表订单号、客户ID、金额 数据源BAPI调用 → 客户信息客户ID、客户名、等级 数据源CExcel文件 → 库存信息SKU、库存量、库位 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/37a4555d5e40419ba9910aee40df1289.png#pic_center)目标按客户ID关联AB按SKU关联AC输出一份完整报表。店群矩阵自动化突破运营极限聚合流程1. 从网页采集订单数据 → orders含 customer_id, sku 2. 从API获取客户信息 → customers含 customer_id, name, level 3. 从Excel读取库存信息 → inventory含 sku, stock_qty, location 4. Python节点 → 三方数据聚合 → merged_report 5. 写入Excel → 完整报表Python聚合代码# 假设三个数据源已经通过影刀传入Python节点# 数据源A订单网页采集orders[{order_no:A001,customer_id:C001,sku:SKU001,amount:1000},{order_no:A002,customer_id:C002,sku:SKU002,amount:2000},{order_no:A003,customer_id:C001,sku:SKU001,amount:500},]# 数据源B客户APIcustomers[{customer_id:C001,name:张三,level:VIP},{customer_id:C002,name:李四,level:普通},]# 数据源C库存Excelinventory[{sku:SKU001,stock:50,location:A-01},{sku:SKU002,stock:30,location:B-03},]# 聚合 # 构建查找字典customer_map{c[customer_id]:cforcincustomers}inventory_map{i[sku]:iforiininventory}# 合并fororderinorders:# 关联客户customercustomer_map.get(order[customer_id],{})order[customer_name]customer.get(name,未知)order[customer_level]customer.get(level,未知)# 关联库存invinventory_map.get(order[sku],{})order[stock_qty]inv.get(stock,0)order[location]inv.get(location,未知)# 现在 orders 里包含了客户和库存信息fororderinorders:print(f{order[order_no]}|{order[customer_name]}({order[customer_level]}) | ¥{order[amount]}| 库存:{order[stock_qty]}({order[location]}))数据不一致的处理多数据源聚合最常遇到的问题A说这个客户存在B里找不到。# 统计关联成功率linked_customerssum(1foroinordersifo.get(customer_name)!未知)linked_inventorysum(1foroinordersifo.get(stock_qty,0)0)print(f客户关联成功率{linked_customers}/{len(orders)})print(f库存关联成功率{linked_inventory}/{len(orders)})# 标记未关联的数据fororderinorders:issues[]iforder[customer_name]未知:issues.append(客户信息缺失)iforder.get(stock_qty,0)0:issues.append(库存信息缺失)order[issues]; .join(issues)ifissueselse正常在影刀中的分段执行阶段1网页采集 → 结果保存到 orders_data 变量 阶段2API调用 → 结果保存到 customers_data 变量 阶段3读取Excel → 结果保存到 inventory_data 变量 [video(video-mvYWbLfD-1784019250224)(type-csdn)(url-https://live.csdn.net/v/embed/524992)(image-https://v-blog.csdnimg.cn/asset/b59aed2f01d4fe8583467562aaf4dcfd/cover/Cover0.jpg)(title-temu店群自动化报活动案例)] 阶段4Python聚合 → 输入orders_data, customers_data, inventory_data → 输出merged_data, stats关联率等统计信息 阶段5写入Excel → 写入合并后的数据 → 写入统计信息到另一个Sheet处理数据量级差异如果三个数据源的数据量差异很大比如订单10万条、客户100万条用Python字典做关联没问题但要注意内存。优化如果数据量很大百万级把数据先写入数据库用SQL的JOIN来做关联比Python内存字典更高效。SELECTo.order_no,o.amount,c.nameAScustomer_name,c.levelAScustomer_level,i.stockASstock_qty,i.locationFROMorders oLEFTJOINcustomers cONo.customer_idc.customer_idLEFTJOINinventory iONo.skui.sku总结多数据源聚合的核心就是关联字段字典查找。每个数据源单独采集最后在Python节点里一把聚合。聚合结果里加一列关联状态标记哪些数据匹配成功、哪些缺失方便后续排查。作者林焱