
影刀RPA实操指南列表操作详解——排序、去重与切片技巧用影刀RPA做采集的人最后都会卡在同一个地方数据抓回来了乱七八糟。价格列里混着字符串重复的订单号去不干净想取列表第三项结果报错Can not convert Array to String。我两年前刚开始用影刀RPA的时候光是把一个二维列表按某一列排序这件事就折腾了整整一个晚上后来才发现官方指令面板里就有现成的指令是我自己不知道去哪找。这篇文章把列表操作讲透排序、去重、切片、遍历每一步精确到指令面板里搜什么词、参数怎么填。案例主线是一个真实场景——电商订单表的清洗采集回来的订单数据要按金额排序、按订单号去重、取出前十条做抽样核对这三步正好对应三个知识点。列表是影刀RPA数据处理的地基Excel读写、循环遍历、网页相似元素底层全是列表。这篇吃透你的流程能从能跑变成好用。变量基础影刀RPA里的列表长什么样先建立直觉。在影刀RPA里拖一个设置变量指令变量类型选列表值填 [“A”, “B”, “C”]然后拖一个【打印日志】指令输出它日志面板会显示 [‘A’, ‘B’, ‘C’]——方括号、逗号分隔、每项带引号这就是列表。列表里的每一项可以是字符串、数字甚至又是另一个列表。列表里套列表就是二维列表你可以把它想象成一张Excel表外层列表是行内层列表是每行的各个单元格。读Excel得到的表格数据本质就是二维列表。概念一维列表二维列表长相[‘A’, ‘B’][[‘A’, 1], [‘B’, 2]]对应Excel一列数据整张表格常见来源网页取文本列表读取Excel内容索引从0开始数[‘A’, ‘B’, ‘C’] 里 ‘B’ 的索引是1不是2。这个规则是后面切片、排序、按列去重的共同前提搞反了取值永远错位。排序实战列表排序与二维列表排序打开影刀RPA右侧指令面板在搜索框输入排序你会看到两个指令【列表排序】和【二维列表排序】。【列表排序】处理一维列表列表参数填待排序的变量排序方式下拉选择升序或降序结果保存在输出变量里。它有一个隐藏要求官方文档写得很清楚——列表项需统一为数字或字符串。混着放就会出问题。这里是我踩过的第一个大坑订单金额采集回来是字符串199.00你直接对它们排序排出来的顺序可能是199.00排在1000.00前面。因为字符串排序是逐字符比大小的1比9小。排序前必须先统一类型用Python模式int()或float()转成数字再排。【二维列表排序】处理整表关键列索引填你要按哪一列排索引从0开始、支持负数-1表示最后一列。配置项说明里写明输出是排序后多维列表注意接住这个输出变量别以为它像Excel指令一样原地生效。# 场景订单表按金额列第2列索引1降序排序# 二维列表 order_table 长这样# [[D001, 199.00], [D002, 1200.50], [D003, 88.00]]# 第一步先把金额列转成数字点亮Python模式i0循环 For次数循环(次数获取列表长度(order_table)):order_table[i][1]float(order_table[i][1])# 199.00 → 199.0ii1# 第二步用【二维列表排序】指令关键列索引填1排序方式降序# 输出变量 sorted_table 就是按金额从大到小的整表去重实战一维去重与按列去重是两回事去重指令同样有两个【列表去重】和【二维列表按列去重】。【列表去重】删掉一维列表里的重复项参数就一个列表变量拖进来就能用。适合场景采集回来的关键词列表、URL列表里有重复一行指令搞定。【二维列表按列去重】复杂一点也常用一点它把某一列的值相同的行视为重复行保留第一行、去掉其余。参数里列索引填按哪列去重从0开始。订单表按订单号去重订单号在第一列就填0。这个指令的输出行为要看仔细官方示例里写明它是直接在原表上操作不产生新变量。我第一次用的时候还在找去重后的列表输出参数找了半天没有——原来原列表已经被改好了直接用原变量就行。# 场景订单表按订单号第0列去重# 二维列表按列去重(二维列表order_table, 列索引0)# 执行后 order_table 本身已经是去重结果直接进入下一步有个实际业务细节如果订单数据是分几天多次采集的建议每天采集完成后都按订单号去重一次再合并两个批次之间总有重叠区间不去重的话数据量虚高老板对不上账。切片与取值从列表里精准拿数据切片是新手报错重灾区先讲规则再讲坑。点亮Python模式后列表[0]取第一项列表[-1]取最后一项列表[0:3]取前三项含头不含尾。这些写法在影刀RPA的任何表达式输入框里都能用只要那个小Python图标是点亮状态。不想写Python也有图形化办法变量后面点小三角可以按列取值。官方FAQ里的原话是使用影刀自带的切片取数点击小三角然后取列表的A列。最高频的报错在这里出现Can not convert Array to String。你循环Excel内容或读取Excel内容拿到一行数据循环项loop_row其实是一个只有一项的列表[‘A’]把它直接填进【填写输入框(web)】就报这个错因为输入框只接受字符串。官方文档给了两种解法我都用过切片取值点亮Python模式写loop_row[0]取出那一项符号全部用英文join语法点亮Python模式写.join(loop_row)把列表拼成字符串还有第三种更图形化的用【获取列表指定位置项】指令指定位置填0把输出变量填进输入框。三种效果一样选你顺手的。循环遍历ForEach列表循环与下标关联遍历列表有两条路选对场景很重要。【ForEach列表循环】直接遍历每一项循环变量就是列表项本身适合对每一项做同样操作的场景比如逐条写入Excel。【For次数循环】配合下标用适合两个场景一是需要知道当前是第几条下标即行号二是循环体里会改变原列表的操作。官方文档在网页相似元素循环的FAQ里给过一个经典模式网页有刷新行为时改用For次数循环在循环内重新获取相似元素列表按下标取项操作——因为列表变了ForEach手里攥着的旧项会失效。两个等长列表想配对处理也靠下标标题列表和价格列表都是20项For次数循环跑20次第i次同时取标题[i]和价格[i]。这类按位置关联的操作ForEach列表循环反而干不了。元素定位中的列表思维相似元素列表列表思维和网页自动化是打通的。【获取相似元素列表(web)】返回的就是列表【循环相似元素(web)】本质是ForEach列表循环的网页特化版。理解了这一点很多报错就通了匹配到多个控件无法唯一定位是因为你把整个列表相似元素组当成了一个元素去点击官方FAQ的比喻很形象——手握一捆铅笔一根手指点不了所有笔尖必须一根一根拿出来。循环变量就是拿出来的那根铅笔。捕获元素时点校验元素如果显示匹配到多个相似元素说明你捕到的是列表要操作单个就用循环变量要批量处理就配合循环。XPath定位里contains(text(),‘xxx’)这种模糊匹配经常配合列表用先拿全部候选节点的列表再逐项判断文本筛选。数据落地Excel读写与列表互转列表和Excel互转是数据处理闭环的最后一环。【读取Excel内容】读进来是二维列表行循环的话循环项是一行数据又是一个列表。【写入行数据到表格】接收一行列表数据注意列表里每一项的类型要和目标列匹配金额列要数字、单号列要字符串。长数字写入变科学计数法的问题官方FAQ的解法是写入指令的高级里设置格式设置为文本的列填入列名或者写之前拼接变量值填 “” str(需要处理的变量)先转字符串再加单引号。一套完整的清洗流程串起来就是读取Excel内容 → 列表项类型转换或Python转类型 → 二维列表排序 → 二维列表按列去重 → 写入Excel。全部指令在面板里搜名字就有不需要一行真正的代码。进阶字符串、JSON与列表的互转进阶场景里列表会和其他类型来回转换记住三条链路。字符串转列表按分隔符切分比如苹果,香蕉,橙子切分后得到三项的列表Python模式写字符串变量.split(‘,’)列表转字符串join语法“”.join(列表)是把列表拼成一个字符串JSON转对象HTTP接口返回的JSON字符串用JSON解析指令转成对象对象的字段列表可以直接进入你熟悉的排序去重流程这三条链路覆盖了采集、清洗、回写的大部分格式问题。我处理过的一个真实需求是把接口返回的商品列表按价格排序后取前10条写飞书多维表格全程就是JSON转对象、二维列表排序、切片[0:10]、循环写入四步。工程化子流程封装与调试建议列表操作逻辑定型后建议封装成子流程。比如订单数据清洗子流程流程参数输入是原始二维列表输出是清洗后的列表主流程任何地方都能调用。以后需求变了比如按订单号去重改成按手机号只改子流程一处。调试列表问题的心法就一句打印日志看类型。日志面板里[‘A’]带方括号是列表A没有括号是字符串199.0是数字。官方FAQ也强调不知道循环项为什么报错的时候优先打印日志看一下拿到的是什么变量。九成的类型报错打印一下日志三秒就能定位。版本方面提醒一句社区版每天有运行时长限制列表处理本身很轻量不碍事但如果你要做大批量数据的排序去重再配合网页采集一次跑不完会被掐断建议拆批或者升级版本。易错速查表报错/现象原因解决Can not convert Array to String列表被直接填进输入框loop_row[0]切片或.join(列表)排序结果不对字符串199.00按字符比较先转float再排序二维列表按列去重没效果指令在原表上操作没有输出变量直接用原变量别找新输出切片取值报错中文符号或Python图标未点亮检查英文符号点亮Python模式取值永远错一位忘了索引从0开始第N列的索引是N-1学习资源这套订单清洗流程的排序、去重、切片三个模块我各自封装成了子流程完整流程源码我放在代码仓库 home.linyan.cloud可以直接参考改造换成你自己的表格只要改列索引。官方学院的列表处理专题课值得完整看一遍配合帮助文档里每个指令的配置项说明基本不需要额外找资料。#影刀RPA #RPA自动化 #数据处理 #Excel #流程设计作者林焱