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

谷歌表格调用OpenWeather API访问["weather"]["main"]返回undefined求助

问题原因

OpenWeather API 返回的 weather 字段是数组类型,而非对象类型。即便是单地点查询仅返回1组天气状态数据,也会被包裹在长度为1的数组中,跳过数组下标直接访问子字段自然会返回 undefined。

你之前能成功拉取到最高、最低温度,是因为这两个字段存放在根路径下的 main 对象中,和 weather 数组下重名的 main 字段属于完全不同的层级,这也是很多开发者容易混淆写错路径的常见原因。

下面是OpenWeather标准返回的结构片段参考:

{
  "weather": [
    // 注意weather对应的值是方括号包裹的数组,你需要的字段在数组第0项内
    {
      "main": "Clear",
      "description": "晴朗",
      "icon": "01d"
    }
  ],
  // 你之前成功取值的温湿度字段在根路径的main对象下,和上面的main字段重名不同层级
  "main": {
    "temp": 28.7,
    "temp_min": 27.2,
    "temp_max": 29.8
  }
}

解决方法

  • 如果你是通过自定义Google Apps Script拉取接口解析:把取值代码从 data["weather"]["main"] 修改为 data["weather"][0]["main"] 即可
  • 如果你是通过第三方ImportJSON插件直接在单元格写公式拉取:把取值路径从 /weather/main 修改为 /weather/0/main 即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 03:06:08