影刀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三、方法2split分割分隔符明确的场景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.00split的坑分隔符出现在内容里# ❌ 价格里有逗号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位尺码SKU002WHI0M01品类码SKU[0:3]# 002颜色码SKU[3:7]# WHI0尺码码SKU[7:10]# M01# 反向截取取最后N个字符文件名拼多多_连衣裙_20260609.xlsx日期文件名[-14:-5]# 20260609 从倒数第14到倒数第5扩展名文件名[-4:]# xlsxTEMU店群如何管理运营五、方法4JSON解析适合从API接口拿到的结构化数据。importjson# 假设调用飞书API拿到一段JSONresp_text{code:0,data:{name:连衣裙,price:128,stock:500}}# 解析JSONdatajson.loads(resp_text)商品名data[data][name]# 连衣裙库存data[data][stock]# 500# 如果是列表结构商品列表_json  [ {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学习手册》系列文章之一内容源于实操经验的整理与分享。
影刀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三、方法2split分割分隔符明确的场景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.00split的坑分隔符出现在内容里# ❌ 价格里有逗号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位尺码SKU002WHI0M01品类码SKU[0:3]# 002颜色码SKU[3:7]# WHI0尺码码SKU[7:10]# M01# 反向截取取最后N个字符文件名拼多多_连衣裙_20260609.xlsx日期文件名[-14:-5]# 20260609 从倒数第14到倒数第5扩展名文件名[-4:]# xlsxTEMU店群如何管理运营五、方法4JSON解析适合从API接口拿到的结构化数据。importjson# 假设调用飞书API拿到一段JSONresp_text{code:0,data:{name:连衣裙,price:128,stock:500}}# 解析JSONdatajson.loads(resp_text)商品名data[data][name]# 连衣裙库存data[data][stock]# 500# 如果是列表结构商品列表_json  [ {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学习手册》系列文章之一内容源于实操经验的整理与分享。