You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Google Apps Script中提取Yahoo Finance XHR复杂对象数据

提取Yahoo Finance季度营收数据的解决方案

以下是修改后的代码,可直接从返回的JSON对象中提取quarterlyTotalRevenue并转换为目标数组格式:

function test() {
  var ticker = 'JPM';
  var url = 'https://query1.finance.yahoo.com/ws/fundamentals-timeseries/v1/finance/timeseries/'
    + ticker + '?lang=en-US&region=US&symbol=' + ticker + '&padTimeSeries=true&type=' + '%2cquarterlyTotalRevenue' +
    '%2c&merge=false&period1=493590046&period2=1672016399&corsDomain=finance.yahoo.com';
  var responseText = UrlFetchApp.fetch(url, { muteHttpExceptions: true }).getContentText();
  var data = JSON.parse(responseText);
  
  // 定位季度营收数据的位置
  var quarterlyRevenue = data?.timeseries?.result[0]?.quarterlyTotalRevenue;
  
  if (quarterlyRevenue) {
    // 转换为[{日期: 营收}, ...]的结构化数组
    var formattedData = Object.entries(quarterlyRevenue).map(([date, revenue]) => ({
      date,
      revenue
    }));
    console.log(formattedData);
  } else {
    console.log("未获取到季度营收数据");
  }
}

核心逻辑说明

  • 数据路径定位:Yahoo的API返回结果中,季度营收数据嵌套在timeseries.result[0].quarterlyTotalRevenue下,这是一个键为日期、值为营收数值的对象。
  • 数组格式转换:通过Object.entries()将键值对拆解为二维数组,再用map()转换为包含日期和营收字段的对象数组。如果需要更简洁的二维数组(比如[["2023-12-31", 38347000000], ...]),可以直接使用Object.entries(quarterlyRevenue)。
  • 异常防护:使用可选链操作符?.避免因API返回结构变化或数据缺失导致的代码报错,同时增加判断逻辑确保数据存在时再执行转换。

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 10:21:12