将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
相关产品推荐
相关产品推荐

