影刀RPA新手教程_JSON数据处理完全指南从API返回数据到结构化表格
影刀RPA新手教程:JSON数据处理完全指南——从API返回数据到结构化表格
你第一次调用API接口,返回了一长串看不懂的文本。
花括号套花括号,中括号套中括号,密密麻麻挤在一起。
你盯着看了五分钟,只想把里面的商品名称和价格取出来。
这就是JSON——RPA开发者每天都要打交道的数据格式。
这篇文章帮你把JSON从"天书"变成"顺手工具"。
JSON到底是什么
JSON的全称叫JavaScript Object Notation。
名字很长,但你只需要记住一句话:
JSON就是一种用文本表示的表格数据。
比如一个商品信息:
{"name":"无线蓝牙耳机","price":199,"stock":586,"tags":["热卖","新品"]}这个结构和你Excel里的一行数据本质上是一样的。
花括号{}表示"一个对象"——相当于Excel的一行。
中括号[]表示"一个列表"——相当于Excel的多行。
键值对"name": "无线蓝牙耳机"就是列名和对应的值。
一句话总结:JSON = {} 包一行,[] 包多行,冒号左边是列名右边是值。
影刀里怎么解析JSON
影刀提供了三个核心指令来处理JSON数据。
1. JSON解析指令
这是最基本也是最重要的指令。
把API返回的原始文本丢进去,得到一个可以用路径访问的结构。
路径用点号.分隔层级:
# 取商品名称 json_data.name # 结果:"无线蓝牙耳机" # 取标签列表 json_data.tags # 结果:["热卖", "新品"] # 取第一个标签 json_data.tags[0] # 结果:"热卖"2. 遍历JSON数组
当接口返回多条数据时,用"循环"来逐条处理:
拼多多店群自动化上架方案
API返回数据 → JSON解析 → 设置变量 json_data 循环 json_data.data.items 中的每一项: 提取 item.productName 提取 item.price 写入Excel下一行这就是JSON数据处理的标准三板斧。
3. JSON取值指令
影刀提供了专门的JSON取值指令,支持更复杂的路径表达式:
# 嵌套取值 $.data.result.list[0].title # 取所有元素的某个字段 $.data.result.list[*].title实战:从公开API获取数据并写入Excel
我们用一个真实的公开API来演示完整流程。
目标:获取豆瓣电影Top250的前20部,写入Excel。
第一步:调用API
使用"HTTP请求"指令:
URL: https://api.douban.com/v2/movie/top250?start=0&count=20 方法:GET返回的数据会存在一个变量里,比如response_body。
第二步:解析JSON
JSON解析:response_body → json_data第三步:理解数据结构
先看看返回的JSON长什么样(关键步骤,别跳过):
{"count":20,"start":0,"total":250,"subjects":[{"title":"肖申克的救赎","year":"1994","rating":{"average":9.7},"genres":["犯罪","剧情"]},...]}你要的列表在subjects这个字段里。
第四步:循环提取
循环 json_data.subjects 中的每一项 item: 电影名称:item.title 上映年份:item.year 豆瓣评分:item.rating.average 类型:item.genres[0] # 取第一个类型 写入Excel下一行注意item.rating.average这种连续点号的写法——这是嵌套JSON的取值方式。
五种最常见的JSON结构
搞懂这五种结构,你就掌握了90%的JSON场景。
结构一:单层对象(最简单)
{"name":"张三","age":25,"city":"深圳"}取值:json_data.name→ “张三”
结构二:嵌套对象(最常见)
{"user":{"name":"张三","address":{"city":"深圳","district":"南山区"}}}取值:json_data.user.address.city→ “深圳”
结构三:数组对象(列表型)
[{"id":1,"name":"商品A"},{"id":2,"name":"商品B"}]循环json_data中的每一项,取item.name。
结构四:对象包含数组(标准API返回)
{"code":200,"message":"success","data":{"list":[{"id":1,"name":"商品A"},{"id":2,"name":"商品B"}],"total":2}}取值路径:json_data.data.list(这个列表才是你要循环的)。
结构五:数组嵌套数组(复杂型)
{"categories":[{"name":"电子产品","products":[{"name":"手机"},{"name":"电脑"}]}]}需要两层循环:外层遍历分类,内层遍历每个分类下的商品。
实操避坑:5个新手常犯错误
坑1:忘记JSON解析
拿到API返回的文本,直接就开始response_body.name取值。
❌ 错误:response_body 是字符串,不能直接用点号取值。
✅ 正确:先用"JSON解析"指令把字符串转成结构化数据,再取值。
坑2:路径没写对
{"data":{"list":[{"name":"商品A"}]}}❌ 错误:json_data.name(name藏在两层下面)
✅ 正确:先循环json_data.data.list,再取item.name
坑3:混淆数组和对象
❌ 错误:json_data.data.list.name(list是数组,不能直接.name)
✅ 正确:循环list中每一项,再取.name
坑4:忽略字段可能不存在
有些API在数据为空时,list字段可能直接不存在。
TEMU店群如何管理运营?
# 安全的取值方式 如果 json_data.data 不存在 或 json_data.data.list 不存在: 跳过本次 否则: 正常处理坑5:数字ID被当成数值
"product_id": 000123这种ID,JSON解析后可能变成123(前面的0丢了)。
解决方案:在写入Excel时把单元格格式设为"文本"。
JSON和Excel的对应关系
理解这个对应关系,数据处理会顺手很多:
| JSON结构 | Excel等价物 |
|---|---|
{}对象 | 一行数据 |
[]数组 | 多行数据(一个sheet) |
嵌套{} | 需要展开的列(或用点号路径取值) |
嵌套[](对象内) | 需要展开成多行(一行变多行) |
数字值199 | 数值单元格 |
字符串"hello" | 文本单元格 |
布尔值true/false | 是/否,或用1/0表示 |
null | 空单元格 |
进阶技巧:把JSON直接转成二维表
有些API返回的JSON就是一张"表"的结构:
[{"name":"张三","age":25,"city":"深圳"},{"name":"李四","age":30,"city":"北京"}]这种结构的处理三步走:
1. 先取第一条的所有key作为表头:name, age, city 2. 先写入表头到Excel第一行 3. 循环每条数据,按key对应的值写入 4. 影刀的"JSON解析"指令配合"获取字典所有键"就能实现。
什么时候用JSON,什么时候用正则
JSON和正则都能从文本中提取数据,选型原则如下:
| 场景 | 用JSON | 用正则 |
|---|---|---|
| 数据来源是标准API | ✅ | ❌ |
| 数据嵌入在HTML页面中 | ✅(先定位再解析) | 可以 |
| 格式不规范、没有固定结构 | ❌ | ✅ |
| 嵌套层级深 | ✅(点号路径) | ❌(正则写到你哭) |
一句话:API返回的 → 用JSON;网页里抓出来的 → 先用正则/XPATH定位,再判断是否需要JSON。
总结
JSON不可怕,它就是结构化文本。
核心就三步:解析 → 看结构 → 循环取值。
搞懂五种常见结构(单层对象、嵌套对象、数组对象、对象含数组、数组嵌数组),90%的场景都能拿下。
遇到不认识的JSON结构,先别急着写流程,花两分钟把数据贴到在线JSON格式化工具里展开看看——一眼就知道循环路径怎么写了。
祝你JSON不再"天书"。
内容标签:#影刀RPA #JSON #API #数据采集 #新手教程
作者:林焱
系列:影刀RPA新手教程系列——从零到一,用工程师的实战经验带你上手RPA自动化
