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

Power Query中如何通过表格单元格的CVE值调用API并将结果写入对应列

Power Query中如何通过表格单元格的CVE值调用API并将结果写入对应列

嗨Dean,刚上手Power Query遇到这种批量API调用的问题太正常了,我来一步步教你实现需求:

步骤1:确保你的CVE表格已加载到Power Query

先把包含CVE列的表格导入到Power Query编辑器里(比如从Excel导入后点击「数据」选项卡的「从表格/范围」),假设这个表格在Power Query里的名称是CVE_Table

步骤2:创建调用API的自定义函数

我们需要先写一个能接收CVE值、调用API并返回EPSS结果的自定义函数:

  1. 在Power Query编辑器顶部点击「主页」→「自定义函数」,给函数起个名字(比如GetEPSSFromCVE),参数名设为cve(类型选文本)。
  2. 把默认的函数体替换成以下代码:
(cve as text) =>
let
    // 拼接API请求URL,将传入的CVE值作为参数
    API_URL = "https://api.first.org/data/v1/epss?cve=" & cve,
    // 发送API请求并获取响应内容
    API_Response = Web.Contents(API_URL),
    // 解析JSON格式的响应
    Parsed_Response = Json.Document(API_Response),
    // 提取EPSS值(适配API返回的结构,若CVE不存在则返回null避免报错)
    EPSS_Result = try Parsed_Response[data]{0}[epss] otherwise null
in
    EPSS_Result

小提示:如果API返回的结构有变化,你可以先单独调用一次API(比如用Web.Contents("https://api.first.org/data/v1/epss?cve=CVE-2023-33228")),解析后查看JSON结构,调整提取路径。

步骤3:将函数应用到CVE列,生成EPSS结果

回到你的CVE表格:

  1. 点击「添加列」→「自定义列」,列名输入EPSS
  2. 在自定义列公式框里输入:= GetEPSSFromCVE([CVE]),点击确定。

此时Power Query会自动遍历表格里的每一个CVE值,调用API并把结果填充到新的EPSS列里。

注意事项

  • 如果遇到权限相关的报错,你可以在Power Query编辑器里点击「文件」→「选项和设置」→「数据源设置」,找到对应的API地址,调整隐私级别为「公开」。
  • 注意API的调用速率限制,避免短时间内发送大量请求导致被限制访问。

备注:内容来源于stack exchange,提问作者Dean C

火山引擎 最新活动