news 2026/6/10 22:33:31

影刀RPA新手教程_从文本提取数据的4种方法

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
影刀RPA新手教程_从文本提取数据的4种方法

影刀RPA新手教程:从文本中提取数据的4种方法——正则、split、截取、JSON解析

上篇Python代码指令里讲了正则,但这只是四种提取方式之一。实际场景里,不同格式的文本需要对应不同的提取方法。

选对方法,一行代码的事。选错了,正则写到头秃。


一、四种方法的适用场景

方法适用场景不适用场景
正则(re)格式不规律但模式固定:价格、手机号、邮箱嵌套结构的数据
split分割分隔符明确的文本:逗号分隔、竖线分隔分隔符在内容里也出现
字符串截取固定位置的数据:前N个字符、第5到第10位长度不固定的数据
JSON解析API返回的JSON数据非JSON格式的文本

判定原则

看数据源。如果是网页上采集的文本 → 正则或split。如果是调用API拿到的数据 → JSON解析。如果是固定格式的编号(比如订单号) → 字符串截取。


拼多多店群自动化上架方案

二、方法1:正则提取(复用上篇+补充)

上篇讲了基本用法,这里补充两个电商高频场景:

场景:提取商品规格参数

importre 规格文本="颜色:黑色,白色,红色 尺码:S,M,L,XL 材质:纯棉"# 提取所有冒号后面的内容参数对=re.findall(r'(\S+):(\S+)',规格文本)# 结果:[("颜色", "黑色,白色,红色"), ("尺码", "S,M,L,XL"), ("材质", "纯棉")]# 转成字典方便使用参数字典={k:vfork,vin参数对}print(参数字典['颜色'])# "黑色,白色,红色"

场景:从SKU文本里提取规格和库存

SKU文本="白色-S码-库存35件"规格=re.search(r'(.+)-(.+)-库存(\d+)件',SKU文本)if规格:颜色=规格.group(1)# "白色"尺码=规格.group(2)# "S码"库存=规格.group(3)# "35"

三、方法2:split分割

分隔符明确的场景,split比正则直观。

# 场景1:逗号分隔的关键词关键词="连衣裙,夏季,法式,收腰,显瘦"词列表=关键词.split(',')# ["连衣裙", "夏季", "法式", "收腰", "显瘦"]# 场景2:换行分隔的地址(从订单里采集的收货地址)地址="广东省\n深圳市\n南山区\n科技园路100号"省份=地址.split('\n')[0]# "广东省"城市=地址.split('\n')[1]# "深圳市"# 场景3:用固定符号分割(竖线分隔的多字段数据)数据行="商品001|白色|S码|128.00|30件"字段列表=数据行.split('|')商品ID=字段列表[0]# "商品001"颜色=字段列表[1]# "白色"价格=字段列表[3]# "128.00"

split的坑:分隔符出现在内容里

# ❌ 价格里有逗号,split会多切一个字段字段="销售额:1,280.50元,利润:320.00元"# 直接用逗号split → 切成4段而不是3段# ✅ 先用正则把数字里的逗号处理掉importre 字段=re.sub(r'(\d),(\d)',r'\1\2',字段)# "销售额:1280.50元,利润:320.00元"

四、方法3:字符串截取

固定格式的编号、固定长度的编码,用切片。

# 订单号格式:年月日+流水号,共14位订单号="20260609001234"日期=订单号[:8]# "20260609" (前8位)流水=订单号[8:]# "001234" (后6位)# 商品SKU编码:前3位品类+中间4位颜色+后3位尺码SKU="002WHI0M01"品类码=SKU[0:3]# "002"颜色码=SKU[3:7]# "WHI0"尺码码=SKU[7:10]# "M01"# 反向截取:取最后N个字符文件名="拼多多_连衣裙_20260609.xlsx"日期=文件名[-14:-5]# "20260609" (从倒数第14到倒数第5)扩展名=文件名[-4:]# "xlsx"

TEMU店群如何管理运营?

五、方法4:JSON解析

适合从API接口拿到的结构化数据。

importjson# 假设调用飞书API拿到一段JSONresp_text='{"code":0,"data":{"name":"连衣裙","price":128,"stock":500}}'# 解析JSONdata=json.loads(resp_text)商品名=data['data']['name']# "连衣裙"库存=data['data']['stock']# 500# 如果是列表结构商品列表_json=''' ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/b2e2b1d047294b10a08a7e5a43e51c2a.png#pic_center) [ {"name": "连衣裙", "price": 128}, {"name": "T恤", "price": 59} ] '''商品列表=json.loads(商品列表_json)for商品in商品列表:print(商品['name'],商品['price'])# 连衣裙 128# T恤 59

六、四种方法组合实战——清洗一条商品数据

# 原始数据:从网页上采集的一条商品文本原始数据='【爆款】夏季连衣裙 法式收腰 ¥128.00 | 已售:10万+ | 颜色:黑,白,红 | {"sku_id":"SKU001","warehouse":"深圳仓"}'importreimportjson# 1. split分割取字段块字段块=原始数据.split('|')# ["【爆款】夏季连衣裙 法式收腰 ¥128.00 ", " 已售:10万+ ", " 颜色:黑,白,红 ", ' {"sku_id":"SKU001","warehouse":"深圳仓"}']# 2. 正则从标题块里提取价格标题块=字段块[0]标题=re.sub(r'【.*?】','',标题块).strip()# "夏季连衣裙 法式收腰 ¥128.00"价格=float(re.search(r'\d+\.?\d*',标题块).group())# 128.0标题_纯=re.sub(r'¥.*','',标题).strip()# "夏季连衣裙 法式收腰"# 3. split从颜色块提取颜色列表颜色块=字段块[2]颜色列表=颜色块.split(':')[1].strip().split(',')# ["黑", "白", "红"]# 4. JSON解析最后一个块Sku块=字段块[3].strip()Sku数据=json.loads(Sku块)货号=Sku数据['sku_id']# "SKU001"仓库=Sku数据['warehouse']# "深圳仓"# 最终结果print(f"标题:{标题_纯}")print(f"价格:{价格}")print(f"颜色:{颜色列表}")print(f"货号:{货号}, 仓库:{仓库}")

七、选型速查

数据长什么样用什么方法示例
有明确分隔符(逗号、竖线、制表符)split“商品A,128,30”
格式不规律但有模式(价格、手机号)正则“¥ 128.00到手价”
固定长度、固定位置截取/切片“20260609001234”
花括号或方括号包裹JSON解析{"name":"连衣裙"}
多分隔符混在一起的复杂文本先用split分块,再对每块用正则见上面组合示例

作者:林焱

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

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/10 22:16:07

AI市场信息不对称:影响与解决方案

1. AI市场中的信息不对称问题解析在人工智能技术快速商业化的今天,一个鲜少被讨论却影响深远的问题正在形成——AI产品交易中的信息不对称。这种现象源于买卖双方对AI系统真实性能的认知差异:开发者掌握模型的完整技术细节和局限,而普通用户往…

作者头像 李华
网站建设 2026/6/10 22:12:08

深入解析LPC292x ARM9 MCU的Flash控制器与GPDMA性能优化实战

1. 项目概述与核心价值在嵌入式开发,尤其是汽车电子和工业控制这类对实时性、可靠性要求极高的领域,选对一颗MCU只是第一步,真正决定项目成败的往往是开发者对芯片内部核心模块的深度理解和驾驭能力。今天,我们就来深入聊聊NXP&am…

作者头像 李华