Google Sheets脚本获取数字标识符加密代币数据报错求助
解决Google Sheets调用CoinMarketCap API获取纯数字符号代币价格的语法错误
错误根源
你遇到的语法错误并非真的缺少右括号,而是JavaScript语法规则限制:纯数字开头的对象属性名,不能使用点(.)符号访问,必须改用方括号([])语法。
报错行第27行的parseData.data.00.quote.USD.price中,.00是非法语法——JS解析器会把.00识别为数字字面量(0.00),而非对象属性访问,进而引发解析混乱,导致误报"missing ) after argument list"。
对比正常脚本中的parseData.data.XCN.quote.USD.price,XCN是字母开头的属性名,符合点符号访问的规则,所以可以正常运行。
修正方案
1. 修复属性访问语法
将第27行的属性访问方式从点符号改为方括号:
sh3.getRange(48, 2).setValue(parseData.data['00'].quote.USD.price)
2. 清理冗余的API请求配置
你的报错脚本中存在配置冲突:url指向quotes/latest接口(根据symbol查询单代币价格),但requestOptions里的uri却写了listings/latest(获取代币列表),且附带了start/limit等不需要的参数。这些冗余配置虽然不会直接引发语法错误,但会增加代码混淆度,建议清理:
修正后的完整脚本:
function getCryptoPrice() { var sh2 = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet2"); var sh3 = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet3"); var apiKey = sh2.getRange(1, 2).getValue(); var url = "https://pro-api.coinmarketcap.com/v1/cryptocurrency/quotes/latest?symbol=00"; var requestOptions = { method: 'GET', headers: { 'X-CMC_PRO_API_KEY': apiKey }, json: true, gzip: true }; var httpRequest = UrlFetchApp.fetch(url, requestOptions); var getContext = httpRequest.getContentText(); var parseData = JSON.parse(getContext); sh3.getRange(48, 2).setValue(parseData.data['00'].quote.USD.price); }
额外说明
- 对于包含特殊字符、纯数字、空格的对象属性名,都必须使用方括号语法访问
- CoinMarketCap的
quotes/latest接口只需要symbol参数,无需start/limit等列表接口参数,清理后代码更高效
内容的提问来源于stack exchange,提问作者Soren The Swede
相关产品推荐
相关产品推荐

