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

将AccuWeather API数据导入并更新至Google Sheets的技术需求

解决方案:用Google Apps Script同步AccuWeather国家数据到Google Sheets

没问题,我给你一套简单可行的方案,用Google Apps Script就能把AccuWeather的国家数据同步到Google Sheets里,完美实现你要的ID和国家名称分栏存储的需求:

步骤1:准备你的表格

  • 新建一个Google表格,把第一行的A列表头设为ID,B列设为国家名称(名称可以自定义,后续代码对应上就行)。

步骤2:打开脚本编辑器

  • 点击顶部菜单栏的「扩展程序」→「Apps Script」,打开Google的脚本编辑器页面。

步骤3:编写同步脚本

把下面的代码粘贴到脚本编辑器里,直接用你提供的API链接就行:

function fetchAndUpdateCountries() {
  // 你的AccuWeather API请求链接
  const apiUrl = "http://dataservice.accuweather.com/locations/v1/countries/ASI?apikey=r0wWEqEDfOM8KwWLIIw8ADXHu2JhgyeB";
  
  try {
    // 发送请求获取API数据
    const response = UrlFetchApp.fetch(apiUrl);
    const countryList = JSON.parse(response.getContentText());
    
    // 获取当前表格的第一个工作表(如果你的表名不是Sheet1,记得改成你的表名)
    const targetSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1");
    if (!targetSheet) throw new Error("找不到Sheet1工作表,请检查表名是否正确");
    
    // 清空现有数据(保留第一行的表头)
    if (targetSheet.getLastRow() > 1) {
      targetSheet.getRange(2, 1, targetSheet.getLastRow() - 1, 2).clearContent();
    }
    
    // 循环写入数据:A列存ID,B列存本地化国家名称(也可以换成EnglishName)
    countryList.forEach((country, index) => {
      const rowNumber = index + 2; // 从第2行开始,跳过表头
      targetSheet.getRange(rowNumber, 1).setValue(country.ID);
      targetSheet.getRange(rowNumber, 2).setValue(country.LocalizedName);
      // 如果想用英文名称,把上面一行换成:targetSheet.getRange(rowNumber, 2).setValue(country.EnglishName);
    });
    
    // 弹出提示告知同步完成
    SpreadsheetApp.getUi().alert("数据同步成功!");
  } catch (error) {
    // 出错时弹出提示并记录错误信息
    SpreadsheetApp.getUi().alert(`同步失败:${error.message}`);
    console.error("同步错误详情:", error);
  }
}

步骤4:测试运行脚本

  • 点击脚本编辑器顶部的「运行」按钮,第一次运行会要求授权,按照页面提示完成授权即可(放心,这是Google官方的权限请求,安全可靠)。授权完成后,回到你的表格,就能看到ID和国家名称已经整齐地填充进去了。

可选:设置自动更新触发器

如果需要定期自动同步数据(比如每天更新一次):

  • 在脚本编辑器左侧点击「触发器」图标(时钟样式)。
  • 点击「添加触发器」,设置触发条件:选择fetchAndUpdateCountries函数,事件源选「时间驱动」,然后设置你想要的更新频率(比如每天、每小时),最后保存就行。

几个注意点

  • API密钥保密:不要把带apikey的链接分享给其他人,也不要在公开场合泄露。如果担心安全,可以把apikey存在脚本的「项目设置」→「脚本属性」里,再通过代码读取。
  • API请求限制:AccuWeather API有请求次数限制,不要过于频繁地调用脚本,避免触发限流导致请求失败。
  • 字段调整:如果API返回的字段有变动,记得对应修改代码里的字段名(比如country.ID、country.LocalizedName)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 17:12:27