影刀RPA文本数据提取方法四:Python字符串处理
作者:林焱 | 适合人群:指令和正则都搞不定,需要更强大文本处理能力的新手
什么情况用什么
有些文本处理任务,用影刀指令写很麻烦,用正则也很难写对。
比如:
- 你要提取的文本在括号里,但括号有好几层(
a(b(c)d)e) - 你要做复杂的字符串替换(比如把日期格式从
2025/10/01改成2025-10-01) - 你要对提取的数据做计算(比如把"1.2万"转换成
12000)
这些情况,用Python处理字符串比用影刀指令或正则简单10倍。
什么情况用Python处理:
- 文本处理逻辑很复杂,指令叠了10层还没搞定
- 需要做数据格式转换(比如"1.2万"→
12000) - 你要处理的不是单个字符串,而是一个列表/字典
- 你稍微懂一点Python(不懂也没关系,可以问AI)
怎么做
第一步:在影刀里启用Python
- 拖入「执行Python代码」指令
- 在代码编辑框里写Python代码
- 注意:指令旁边的Python图标要点亮(变成蓝色),表示这段代码会用Python执行
第二步:掌握最常用的Python字符串方法
| 方法 | 功能 | 例子 |
|---|---|---|
split() | 按分隔符切割 | "a,b,c".split(',')→['a','b','c'] |
replace() | 替换 | "¥99".replace('¥','')→"99" |
strip() | 去首尾空格 | " hello ".strip()→"hello" |
拼多多店群自动化上架方案
|find()| 查找位置 |"价格:99".find(':')→2|
|int()| 转整数 |int("99")→99|
|float()| 转浮点数 |float("9.9")→9.9|
案例1:把"1.2万"转换成12000
text="1.2万"num=float(text.replace('万',''))*10000print(int(num))# 输出:12000在影刀里的完整流程:
- 「获取元素信息」→ 拿到"1.2万"存到变量
text - 「执行Python代码」→ 写上面的代码,输入变量
text,输出变量num - 「在控制台打印」→ 输出
num确认结果
案例2:提取括号里的内容
文本:"商品价格(到手价:¥8999)"
目标:提取8999
importre text="商品价格(到手价:¥8999)"result=re.findall(r'¥(\d+)',text)print(result[0])# 输出:8999案例3:批量处理一个列表
你有10个商品价格:["¥99", "¥199", "¥299"],想把¥符号去掉,转换成数字列表。
prices=["¥99","¥199","¥299"]nums=[float(p.replace('¥',''))forpinprices]print(nums)# 输出:[99.0, 199.0, 299.0]在影刀里:
- 假设你已经有一个列表变量
prices - 「执行Python代码」→
nums=[float(p.replace('¥',''))forpinprices] - 输出变量
nums就是清洗后的数字列表
有什么坑
坑1:影刀的Python环境可能缺少某些库
影刀内置的Python环境是基础版,有些第三方库(比如pandas、numpy)可能没有安装。
解决方案:
- 尽量用Python标准库(
re、json、datetime等) - 如果一定要用第三方库,可以在影刀外面用Python处理,影刀只负责采集数据
坑2:Python代码里的变量和影刀的变量要对应好
「执行Python代码」指令有两个设置:
- 输入变量:影刀里的变量,传给Python代码用
- 输出变量:Python代码里
print()输出的内容,传回给影刀
如果你在Python代码里print(result),但输出变量没设置,影刀拿不到结果。
正确做法:
- 输入变量:
text(影刀里的变量名) - Python代码里用
text(不用声明,直接用) - 输出变量:
result - Python代码最后写
print(result)
坑3:Python的索引从0开始,影刀的列表索引也从0开始
这个反而不是坑——影刀和Python的列表索引都是从0开始的,两边一致。
TEMU店群如何管理运营?
但如果你之前用「截取文本」指令,那个的起始位置是从1开始的。两边混用时要注意。
坑4:中文字符串处理要注意编码
Python 3.x默认是Unicode,处理中文没问题。但如果你从影刀传过来的变量是乱码,可能是编码问题。
解决方案:在Python代码里,确保字符串是Unicode格式。如果遇到乱码,试试:
text=text.encode('utf-8').decode('utf-8')坑5:Python代码写错了不会在影刀里报错
如果Python代码有语法错误,影刀不会给你详细的报错信息,只会说"执行失败"。
解决方案:
- 先把Python代码在本地Python环境里测试通过
- 再复制到影刀里用
总结
Python字符串处理是终极大招——几乎所有文本处理任务都能用Python搞定。
四个方法怎么选:
简单任务 → 用影刀指令(不用写代码)
有固定模式 → 用正则表达式(一行搞定)
数据在JSON里 → 用JSON解析(最快)
复杂任务 → 用Python(终极大招)
下一篇讲图表数据抓取实战,这是手册里提到的场景——如何提取网页上折线图、柱状图里的数据。
作者:林焱