影刀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(,)→99strip()去首尾空格 hello .strip()→hello拼多多店群自动化上架方案|find()| 查找位置 |价格99.find()→2||int()| 转整数 |int(99)→99||float()| 转浮点数 |float(9.9)→9.9|案例1把1.2万转换成12000text1.2万numfloat(text.replace(万,))*10000print(int(num))# 输出12000在影刀里的完整流程「获取元素信息」→ 拿到1.2万存到变量text「执行Python代码」→ 写上面的代码输入变量text输出变量num「在控制台打印」→ 输出num确认结果案例2提取括号里的内容文本商品价格到手价8999目标提取8999importre text商品价格到手价8999resultre.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处理影刀只负责采集数据坑2Python代码里的变量和影刀的变量要对应好「执行Python代码」指令有两个设置输入变量影刀里的变量传给Python代码用输出变量Python代码里print()输出的内容传回给影刀如果你在Python代码里print(result)但输出变量没设置影刀拿不到结果。正确做法输入变量text影刀里的变量名Python代码里用text不用声明直接用输出变量resultPython代码最后写print(result)坑3Python的索引从0开始影刀的列表索引也从0开始这个反而不是坑——影刀和Python的列表索引都是从0开始的两边一致。TEMU店群如何管理运营但如果你之前用「截取文本」指令那个的起始位置是从1开始的。两边混用时要注意。坑4中文字符串处理要注意编码Python 3.x默认是Unicode处理中文没问题。但如果你从影刀传过来的变量是乱码可能是编码问题。解决方案在Python代码里确保字符串是Unicode格式。如果遇到乱码试试texttext.encode(utf-8).decode(utf-8)坑5Python代码写错了不会在影刀里报错如果Python代码有语法错误影刀不会给你详细的报错信息只会说执行失败。解决方案先把Python代码在本地Python环境里测试通过再复制到影刀里用总结Python字符串处理是终极大招——几乎所有文本处理任务都能用Python搞定。四个方法怎么选简单任务 → 用影刀指令不用写代码有固定模式 → 用正则表达式一行搞定数据在JSON里 → 用JSON解析最快复杂任务 → 用Python终极大招下一篇讲图表数据抓取实战这是手册里提到的场景——如何提取网页上折线图、柱状图里的数据。作者林焱