影刀RPA 流程中数据校验确保采集的数据干净可用作者林焱采集完1000条数据就直接写入Excel你是把垃圾数据当宝藏了。数据校验是采集流程中最容易被跳过的环节但恰恰是最重要的——脏数据进了报表所有下游分析都是错的。必做的数据校验defvalidate_data(items):数据校验返回干净的 脏的valid[]invalid[]foriteminitems:errors[]# 1. 必填字段检查ifnotitem.get(name):errors.append(名称为空)# 2. 数据类型检查priceitem.get(price)ifpriceisnotNone:try:pricefloat(str(price).replace(¥,).replace(,,))item[price]priceexcept:errors.append(f价格非数字:{price})# 3. 数据范围检查ifpriceinitemandisinstance(item[price],(int,float)):ifitem[price]0:errors.append(f价格不合理:{item[price]})elifitem[price]1000000:![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/7f690185d13f4a8e8703a8edfbbfa7cd.png#pic_center)errors.append(f价格异常偏高:{item[price]})# 4. 日期格式检查ifitem.get(date):try:datetime.strptime(item[date],%Y-%m-%d)except:errors.append(f日期格式错误:{item[date]})# 5. 字符串长度检查ifitem.get(title)andlen(item[title])500:errors.append(f标题过长({len(item[title])}字))# 6. 唯一性检查需要外部记录# ... 略iferrors:item[errors]errors invalid.append(item)else:valid.append(item)returnvalid,invalid生成校验报告拼多多店群自动化报活动上架defgenerate_validation_report(valid,invalid,total):生成数据校验报告reportf 数据校验报告 总数{total}✅ 通过{len(valid)}({len(valid)/max(total,1)*100:.1f}%) ❌ 未通过{len(invalid)}({len(invalid)/max(total,1)*100:.1f}%) 未通过详情 # 按错误类型分类error_types{}foritemininvalid:forerrinitem[errors]:error_types[err]error_types.get(err,0)1forerr,countinsorted(error_types.items(),keylambdax:-x[1]):reportf-{err}:{count}条\nreturnreport自动修复常见问题有些数据问题可以自动修复不需要丢弃defauto_fix(item):尝试自动修复常见问题# 去除首尾空格forkeyinitem:ifisinstance(item[key],str):item[key]item[key].strip()# 统一日期格式dateitem.get(date,)ifisinstance(date,str):forfmtin[%Y-%m-%d,%Y/%m/%d,%Y年%m月%d日,%m-%d-%Y]:try:dtdatetime.strptime(date,fmt)item[date]dt.strftime(%Y-%m-%d)breakexcept:continue# 价格去符号priceitem.get(price,)ifisinstance(price,str):priceprice.replace(¥,).replace($,).replace(,,).strip()try:item[price]float(price)except:passreturnitem数据去重defdeduplicate(items,key_fieldname):根据关键字段去重seenset()unique[]duplicates[]foriteminitems:keyitem.get(key_field,)ifkeyinseen:duplicates.append(item)else:seen.add(key)unique.append(item)returnunique,duplicates影刀流程中的完整数据管道采集原始数据 ↓ 自动修复去空格、统一格式 ↓ 数据校验类型、范围、必填检查 ↓ 去重 ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/77b1f7498d1e44b9b4797afd5164a594.png#pic_center) ↓ 分叉 ├─ 通过 → 写入主表/Excel └─ 未通过 → 写入异常表 推送通知踩坑实录坑1校验太严格导致大量数据被丢弃一个字段校验失败就整条丢弃可能导致50%的数据丢失。更好的做法标记问题、尽量修复、实在修不了的才丢弃。用软校验标记代替硬校验丢弃。TEMU店群矩阵自动化运营核价报活动坑2校验规则不适应数据变化数据源的格式可能会变。比如今天价格是¥99.00明天变成了99.00元。你的正则表达式就失效了。定期检查未通过率——如果某个字段的未通过率突然飙升多半是数据源变了。坑3浮点数比较要用容差不要用比较浮点数。价格对比用容差ifabs(price1-price2)0.01:# 1分钱的容差print(价格相同)写在最后数据校验是RPA流程的质检员。花10%的时间写校验逻辑能避免90%的下游错误。宁可少采集100条不要混入1条脏数据。