影刀RPA实操指南:二维列表操作详解——行列转换与按列取值
Excel读出来的数据、数据库查回来的数据、接口拼好的数据,在影刀RPA里全都是同一种形态——二维列表。可新手处理二维列表时最容易犯两类错:想拿某一列却只会写循环一个个抠,效率低还容易错位;想做行列转换(把表竖着变横着)直接没头绪,最后手工在Excel里复制粘贴转置。
这篇影刀RPA实操指南把二维列表的核心操作一次讲全:什么是二维列表、怎么按列取值、怎么做行列转换、怎么筛选排序去重。所有指令都是影刀RPA列表扩展指令集里的现成货,拖出来配参数就能用。我做电商数据采集两年,日常的对账表、比价表、日报全靠这套操作撑着。
认识二维列表:表格在程序世界里的样子
二维列表就是"列表里面套列表"。外层列表的每一项是一行,行里的每一项是一个单元格,和Excel的行列完全对应:

[["商品", "价格", "销量"], ← 第0行(表头)
["商品A", "99.9", "1200"], ← 第1行
["商品B", "59.0", "340"]] ← 第2行
影刀RPA里这些指令的输出都是二维列表:【读取Excel区域】读一个区域、【数据库查询】查一张表、【获取表格】抓网页表格、CSV文件读取。也就是说,学会操作二维列表,等于打通了Excel、数据库、网页三边的通用数据处理能力。
先给刚装影刀RPA的朋友一个校验习惯:拿到任何二维列表变量,先接一个【打印日志】打出来,日志面板里看一眼行数和列数对不对,再往下做处理。行数不对说明上游采集或查询有问题,早发现早排查。
按列取值:获取二维列表指定列指令详解
想从商品表里只拿出"价格"这一列,别写循环,影刀RPA有现成指令。指令面板搜【获取二维列表指定列】,配置三个地方:

返回值有个规则要记牢:取一列时返回一维列表(一串值),取多列时返回二维列表(还是一张表)。官方示例里,变量variable=[[1,2,3],[3,4,5],[5,6,7]],取第0,2列,结果保存到result_list,打印出来是[[1,3],[3,5],[5,7]]。
这个"取一列返回一维列表"的规则很实用:拿到一列价格后可以直接交给【获取列表平均值】或【获取列表最值】算均价和最高最低价,取值和统计两步无缝衔接。我就靠这两步做每日价格监控,均价波动超过阈值就触发飞书告警。
行列转换:三条路,按场景选
把表竖着变横着(或反过来),影刀RPA里有三条路,我按使用频率排序:
第一条:Excel粘贴转置,适合Excel之间的搬运。【拷贝Excel内容】加【粘贴Excel内容】组合,粘贴时把"转置"选项勾上——官方配置说明里写得很直白:转置,将所复制数据的列更改为行。操作路径:先【打开/新建Excel】拿到表格对象,【拷贝Excel内容】框选源区域,【粘贴Excel内容】指定目标单元格行列号(行号从1开始,支持-1表示倒数第一行),选择性粘贴里勾转置。这个方案不用碰代码,小表快用快走。
**第二条:Python一行zip,适合流程中间环节。**在Python节点里做转换,输出说明和注释如下:
# 输入:rows 为二维列表,例如 [["商品","价格"],["A","99.9"],["B","59.0"]]
# 输出:transposed 转置后的二维列表,例如 [["商品","A","B"],["价格","99.9","59.0"]]
transposed = [list(row) for row in zip(*rows)] # zip(*表) 就是按列重组成行

zip(*rows)这个写法第一次看会懵,记住效果就行:行变列、列变行。我建议转完打印一下核对形状,尤其当各行长度不一致时(尾部有空单元格),zip会按最短的行截断,这种情况先用【多维列表转一维列表】之类的指令把数据规整了再转。
**第三条:读区域时直接转置。**部分读取类指令的配置里有transpose参数,是否选择转置默认为False,把它改成True,读出来的二维列表直接就是转置后的形态,连转换步骤都省了。
三条路怎么选:只在Excel间搬运用粘贴转置;数据还要继续清洗、写库、推送的,用Python转置,让数据全程保持二维列表形态流动。
筛选、排序、去重:按列处理三件套
拿到二维列表后的常规清洗,影刀RPA的列表扩展指令集基本全覆盖,三个最常用的:
| 【筛选二维列表】 | 按某列条件保留/删除行 | 列索引、筛选操作、筛选条件 |
| 【二维列表排序】 | 按某一列字段给行排序 | 关键列索引,支持负数 |
| 【二维列表按列去重】 | 某列值重复的行只留一条 | 去重依据的列 |
【筛选二维列表】官方例子很典型:一张四列的用户表,对列索引1(第二列年龄)筛选条件"大于18",剩下的行就全是成年用户,筛选操作包括大于、小于、包含、不包含、等于、不等于这些常规判断。我做拼多多商品表清洗固定两道:先筛价格大于0的行,再按销量列【二维列表排序】降序,出来的表直接能看。

【二维列表添加列】用来给表补字段:采集到的原始表里加一列"店铺名"或"采集日期",整列赋同一个值,比循环逐行append省事。处理完的表走【数据库批量插入数据】——注意这个指令只接受二维列表——或【写入区域】写回Excel,形成完整闭环。
易错点:二维列表处理的四个高频坑
这几个坑我都真实踩过,特别提醒:
排查错位问题的万能方法:断点打在写入指令前,变量面板里把二维列表展开,第一行第一列、最后一行最后一列各看一眼,和Excel原表对一下。三十秒的事,能省一晚上排查。
融入完整流程:从采集到落库的二维列表之旅
把这套操作放进真实项目看看位置。一个电商比价机器人的数据段:网页自动化部分用【获取相似元素列表】抓商品列表页,ForEach循环逐项提取字段拼行,得到原始二维列表;数据段先【二维列表按列去重】去掉重复商品,再【筛选二维列表】清洗异常价格,【二维列表添加列】补上采集日期,最后【写入区域】进Excel日报、同时【数据库批量插入数据】进库;联动段用【获取列表平均值】算品类均

价,写进飞书消息推送。
流程控制层面两个建议:ForEach循环体里包Try-Catch,单行数据出错跳过这行继续跑,别让一行脏数据废掉整批;循环外加判断,列表为空时直接结束并通知,避免空跑半小时。
工程化与速查:让二维列表操作可复用
二维列表的处理逻辑(去重、清洗、加列、落库)非常适合封装成子流程,输入原始二维列表、输出处理结果,主流程里谁的数据进来都走同一套清洗标准。配合命名规范给变量起清楚的名字,比如goods_table、price_column,比t1、t2这种在调试变量面板里友好一万倍——变量面板是按名字展示的,名字烂排查就痛苦。
至于鼠标键盘图像那类前台操作,在数据类流程里占比很低,只在网页无接口、无表格结构时用图像识别兜底,这里不展开。学有余力可以研究Pandas,比循环快十倍的表处理,但先把本文这套指令用熟,它们够覆盖八成日常需求。
二维列表操作易错速查
| 取到的列数据错位 | 列序号从1开始数了 | 序号从0开始,0是第一列 |
| 按列操作报类型错误 | 读取时选了行/单元格模式 | 用读区域或已使用区域,输出二维列表 |
| 转置后行数变少 | 各行长度不齐,zip截断 | 先规整补齐空值再转置 |
| 筛选后数据没变化 | 结果存进了新变量没引用 | 把输出变量接进后续流程 |
| 数据库批量插入失败 | 传入的不是二维列表 | 检查数据形态,一维列表先包装成二维 |
学习资源与延伸阅读

官方列表扩展指令集的文档值得整个翻一遍:获取二维列表指定列、筛选二维列表、二维列表排序、二维列表分组、二维列表添加列、二维列表按列去重、多维列表转一维列表,每一篇都带可直接运行的示例,比任何教程都权威。"数据表格可以存储多少数据"这类FAQ也在官方文档里,大数据量场景先看限制再设计。
我把比价机器人的完整流程源码——从相似元素采集到二维列表清洗落库——放在代码仓库 home.linyan.cloud,可以直接参考改造,把采集目标和列结构换成你自己的业务就能跑。
#影刀RPA #RPA自动化 #二维列表 #数据处理 #Excel
作者:林焱

网硕互联帮助中心







评论前必须登录!
注册