影刀RPA进阶教程:Python协同数据清洗与正则提取的5个实战技巧

采集回来的数据,一半是脏的。

价格带“¥”符号,销量带“人付款”,日期是“3天前”这种格式。用影刀RPA自带的指令处理,写一堆条件判断,又长又容易错。

其实影刀RPA内置了Python执行环境,几行代码就能搞定这些脏数据。

picture.image

下面把最常用的5个Python协同技巧拆开讲,都是电商采集后清洗的实战场景。

在影刀RPA中执行Python代码的两种方式

picture.image 场景:采集到价格文本“¥29.90”,想转成数字29.9。

方法:用“执行Python代码”指令,直接写Python逻辑。

操作步骤:

  1. 在右侧指令面板搜索“执行Python代码”

picture.image 2. 拖入流程,点击“编辑代码”

  1. 输入Python代码,用return返回结果
  2. 输出变量设为clean_price,后续指令引用
# 影刀RPA中执行Python:清洗价格
import re

![picture.image](https://p6-volc-community-sign.byteimg.com/tos-cn-i-tlddhu82om/4d0541427c86405a951f9b2d7e174b18~tplv-tlddhu82om-image.image?=&rk3s=8031ce6d&x-expires=1792123502&x-signature=fAibcS7zQpSAjl09OidYVTt%2F%2Bw8%3D)

raw_price = "¥29.90"
# 提取数字部分
price = re.findall(r'\d+\.?\d*', raw_price)
# 转成浮点数
clean_price = float(price[0]) if price else 0.0
return clean_price

![picture.image](https://p6-volc-community-sign.byteimg.com/tos-cn-i-tlddhu82om/6d61afcf0b014e5784087a43ed1e6a65~tplv-tlddhu82om-image.image?=&rk3s=8031ce6d&x-expires=1792123502&x-signature=Vm5GY9eo8Be5iZNo7ybDUOGDO%2Bc%3D)

注意:社区版30分钟/天,Python代码执行很快,但调试时尽量用创业版,避免额度耗尽。

正则提取:从杂乱文本中抓取关键数据

picture.image 场景:采集到销量文本“1.2万人付款”,想提取数字12000。

方法:用Python的re模块,配合影刀RPA的“执行Python代码”指令。

# 影刀RPA中执行Python:提取销量数字
import re

![picture.image](https://p6-volc-community-sign.byteimg.com/tos-cn-i-tlddhu82om/b3fbe0dde8e249a7a56a7de467a8e91a~tplv-tlddhu82om-image.image?=&rk3s=8031ce6d&x-expires=1792123502&x-signature=sHeTcY5uTnl8StvlKMLnlHfNl8E%3D)

raw_sales = "1.2万人付款"
# 匹配数字和单位
match = re.search(r'([\d.]+)(万?)', raw_sales)
if match:
    num = float(match.group(1))
    unit = match.group(2)
    # 如果有“万”,乘以10000
    sales = int(num * 10000) if unit == '万' else int(num)
else:
    sales = 0
return sales

实测:正则提取比拼字符串快10倍,而且不容易漏。

数据清洗:Pandas处理缺失值与重复值

场景:采集了500条拼多多商品,有80条重复,价格列还有空值。

方法:用Pandas在影刀RPA里做清洗,比自带指令灵活。

# 影刀RPA中执行Python:Pandas清洗
import pandas as pd

# 读取采集数据
df = pd.read_excel('拼多多商品数据.xlsx')

# 按商品ID去重
df = df.drop_duplicates(subset=['商品ID'], keep='first')

# 删除价格为空的行
df = df.dropna(subset=['价格'])

# 价格列转数字类型
df['价格'] = pd.to_numeric(df['价格'], errors='coerce')

# 保存清洗后数据
df.to_excel('拼多多商品数据_清洗后.xlsx', index=False)

return len(df)  # 返回清洗后的行数
清洗操作Pandas方法影刀自带指令
去重drop_duplicates删除重复行
删空值dropna需循环判断
类型转换astype需逐行处理
批量替换replace需条件判断

日期时间处理:字符串转时间格式

场景:采集到发布时间“3天前”“2026-09-30”,格式不统一。

方法:用Python的datetime和dateutil解析。

# 影刀RPA中执行Python:统一日期格式
from datetime import datetime, timedelta

raw_date = "3天前"
if "天前" in raw_date:
    days = int(raw_date.replace("天前", ""))
    clean_date = (datetime.now() - timedelta(days=days)).strftime("%Y-%m-%d")
else:
    clean_date = raw_date

return clean_date

重点:电商平台的日期格式五花八门,建议统一转成YYYY-MM-DD格式再写入Excel。

JSON解析:处理API返回的嵌套数据

场景:用HTTP请求拿到飞书API返回的JSON,需要提取records里的字段。

方法:用Python的json模块解析,配合影刀RPA的“提取JSON数据”指令。

# 影刀RPA中执行Python:解析飞书API返回
import json

response_text = '{"code":0,"data":{"items":[{"fields":{"商品标题":"测试A","价格":"29.9"}}]}}'
data = json.loads(response_text)

# 提取所有记录
items = data.get("data", {}).get("items", [])
result = []
for item in items:
    fields = item.get("fields", {})
    result.append({
        "标题": fields.get("商品标题", ""),
        "价格": fields.get("价格", "")
    })

return result

避坑:嵌套层级深时,用.get()方法,不要用[],避免KeyError。

常见问题速查

问题原因解决
Python代码报错缩进错误检查缩进
返回值为空没写return加return语句
中文乱码编码问题加# -*- coding: utf-8 -*-
社区版额度不够30分钟/天创业版无限制
魔法指令生成的代码跑不通逻辑不完整手动检查变量名

Q:魔法指令能生成Python代码吗?

A:影刀3.0的魔法指令可以对话式生成Python片段,但生成后要自己检查逻辑和变量名。

Q:Python代码能调用影刀RPA的变量吗?

A:可以。在“执行Python代码”指令中,直接引用影刀变量名即可,比如return 变量名。

推荐资源

  • 影刀RPA官方学院“Python协同”专题课,免费
  • 影刀社区搜索“数据清洗”,有Pandas处理模板
  • Python官方文档re模块和pandas模块,有完整示例

#影刀RPA #RPA自动化 #Python协同 #数据清洗 #正则提取

作者:林焱

本文为《影刀RPA学习手册》系列文章之一,内容源于实操经验的整理与分享。

0
0
0
0
评论
未登录
暂无评论