首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用Apps脚本和API从Coinmarketcap.com导入数据到Google工作表

使用Apps脚本和API从Coinmarketcap.com导入数据到Google工作表
EN

Stack Overflow用户
提问于 2022-02-16 13:45:07
回答 1查看 323关注 0票数 -1

我试图用Google脚本编写代码,将显示在url https://coinmarketcap.com/上的数据转储到Google中(比如从A1开始)。不只是一个符号的数据,而是显示在这个页面上的所有符号。具体来说,我正在寻找‘符号’名称‘价格’'market_cap‘的数据。

API文档如下:https://coinmarketcap.com/api/documentation/v1/#operation/getV1CryptocurrencyListingsLatest

我过去经常使用API连接器来完成这个任务,但是我宁愿使用几行代码。我花了几个小时阅读有关搜索结果的不同方法,但它们要么适合于单个符号,要么涉及太多的请求。

我的密码在下面。我没有收到错误,但它也没有返回任何数据。我相信我需要调整'setValue‘,但我不知道如何去做。

会很感激你的帮助。谢谢!

代码语言:javascript
运行
复制
function coin_price() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Coins')
  var requestOptions = {
  method: 'GET',
  uri: 'https://pro-api.coinmarketcap.com/v1/cryptocurrency/listings/latest?aux=cmc_rank',
  qs: {
   start: '1',
   limit: '5000',
   convert: 'USD',
  },
  headers: {
    'X-CMC_PRO_API_KEY': 'MY API KEY'
  },
  json: true,
  gzip: true,
};

var url = `https://pro-api.coinmarketcap.com/v1/cryptocurrency/listings/latest?aux=cmc_rank`;
var result = UrlFetchApp.fetch(url, requestOptions);
var txt = result.getContentText()
var d = JSON.parse(txt);
sheet.getRange(100,1).setValue(d.data.market_cap)
}
EN

Stack Overflow用户

回答已采纳

发布于 2022-02-16 17:44:34

建议

也许您可以尝试下面这个经过调整的脚本:

剧本:

代码语言:javascript
运行
复制
function coin_price() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Coins')
  var requestOptions = {
  method: 'GET',
  uri: 'https://pro-api.coinmarketcap.com/v1/cryptocurrency/listings/latest?aux=cmc_rank',
  qs: {
   start: '1',
   limit: '5000',
   convert: 'USD',
  },
  headers: {
    'X-CMC_PRO_API_KEY': 'API_Key'
  },
  json: true,
  gzip: true,
};

var url = `https://pro-api.coinmarketcap.com/v1/cryptocurrency/listings/latest?aux=cmc_rank`;
var result = UrlFetchApp.fetch(url, requestOptions);
var txt = result.getContentText()
var d = JSON.parse(txt);
var dSymbol = [];
var name = [];
var price = [];
var marketCap = [];
for(i=0; i<d.data.length; i++){
  marketCap.push([d.data[i].quote.USD.market_cap]);
  dSymbol.push([d.data[i].symbol]);
  name.push([d.data[i].name]);
  price.push([d.data[i].quote.USD.price])
}
//getRange structure (starting row, start col, total number of rows,total number of cols)
sheet.getRange(1,1,dSymbol.length,1).setValues(dSymbol); //Symbol in Col A (start col #1)
sheet.getRange(1,2,name.length,1).setValues(name); //Name in Col B (start col #2)
sheet.getRange(1,3,price.length,1).setValues(price); //Price in Col C (start col #3)
sheet.getRange(1,4,marketCap.length,1).setValues(marketCap); //Market Cap in Col D (start col #4)
}

抽样结果:

参考资料:

票数 1
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71142998

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档