You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何通过Excel Power Query从嵌套JSON中提取Web分析数据?

用Excel Power Query提取嵌套JSON中的Web分析数据

嘿,刚好我处理过类似的嵌套API数据提取需求,给你一步步拆解怎么用Power Query搞定这个事儿:

步骤1:获取第一层站点列表数据

首先咱们先把~/sites返回的200条站点基础数据拉进来:

  • 打开Excel,点击「数据」选项卡 → 「获取数据」→ 「自其他来源」→ 「自Web」
  • 输入~/sites的完整API地址(你实际的接口URL),点击确定
  • 数据加载到Power Query编辑器后,选择「转换」选项卡 → 「解析」→ 「JSON」
  • 现在你会看到一个包含所有站点条目的列表,点击列表列的展开按钮,选择要保留的字段:idurlpagesvisits,还有_links.site.href(建议把这个字段重命名为「站点详情URL」,方便后续识别)

步骤2:批量拉取站点详情(获取分析数据的入口链接)

接下来我们要通过每个站点的详情URL,拿到分析数据的入口:

  • 在Power Query编辑器里,点击「添加列」→ 「自定义列」
  • 输入M代码来调用详情API:
    = Json.Document(Web.Contents([站点详情URL]))
    
  • 点击确定后,你会得到一个包含站点详情JSON的列,再次点击展开按钮,找到_links.analytics.overview.summary.href字段,提取出来并重命名为「分析汇总URL」

步骤3:提取最终的Web分析数据

最后一步就是批量获取每个站点的分析汇总数据:

  • 再次添加自定义列,调用分析汇总URL:
    = Json.Document(Web.Contents([分析汇总URL]))
    
  • 展开这个列里的所有分析字段(比如访问量、用户数等具体指标),然后把这些字段和之前的站点基础数据合并到同一表格里
  • 点击「关闭并上载」,把整理好的数据导入Excel表格

一些需要注意的小细节

  • API权限:确保你的API请求带有正确的认证信息(比如Headers里的Token),如果需要的话,可以在Web.Contents里添加参数:
    = Json.Document(Web.Contents("你的API地址", [Headers=[Authorization="Bearer 你的Token"]]))
    
  • 速率限制:如果API有请求频率限制,可以在Power Query里添加延迟,避免被限流,比如用Function.InvokeAfter来包装请求
  • 错误处理:可以用try...otherwise来捕获请求失败的情况,避免整个流程中断:
    = try Json.Document(Web.Contents([分析汇总URL])) otherwise null
    

内容的提问来源于stack exchange,提问作者Jeppe KS

火山引擎 最新活动