coinmarketcap API // json

问题描述 投票:0回答:1

我尝试通过 cmc api 将加密货币价格读入谷歌表格。

我通过应用程序脚本获得了这个功能

function getCryptoData(x) {
  var url = "https://pro-api.coinmarketcap.com/v1/cryptocurrency/listings/latest?convert=EUR";
  var apiKey = 'xyz'; // Replace with your API key
  var headers = {
    "X-CMC_PRO_API_KEY": apiKey,
    "Accept": "application/json"
  };

  var response = UrlFetchApp.fetch(url, {'headers': headers});
  var json = JSON.parse(response.getContentText());
  return json.data[x].quote.EUR.price; // Example: Fetches the price of the x-th listed cryptocurrency in EUR
}

现在我不想要 json 的第 x 个数据条目的价格,我想要 id = x 的货币的价格。我认为这是一个 json 字典,但我无法正确理解。例如,BTC 的 id = 1,ETH 的 id = 1027。

这是一个基本问题,我对此很陌生,所以请耐心等待。这可以理解吗?

我尝试用 for 和 if 遍历字典,但没有成功。

for id in data['id']
  if id == x
    return json.data[].quote.EUR.price;

所以,我不知道如何引用正确的字典条目。

这是这个网址的json的完整输出,据我所知:https://docs.google.com/spreadsheets/d/1h9PmgIJWt0L5cD2pYRLOwEKhUi-K_OFY-C-n6vQEAcY/edit?usp=sharing

json google-sheets coinmarketcap
1个回答
0
投票

使用 CMC API 获取特定的加密货币价格

我尝试了你的代码,它似乎丢失了并且有错误。我修改了您的

python
并将其转换为
Javascript
并添加了
forEach()
函数来迭代每个数据,如果 ID 在您的数组中匹配,它将返回 EUROCRYPTO 值以匹配您的数组脚本
json.data[x].quote.EUR.price
.

代码.gs

function getCryptoData(id) {
  var url = "https://pro-api.coinmarketcap.com/v1/cryptocurrency/listings/latest?convert=EUR";
  var apiKey = 'xyz'; // Replace with your API key
  var headers = {
    "X-CMC_PRO_API_KEY": apiKey,
    "Accept": "application/json"
  };

  var response = UrlFetchApp.fetch(url, { 'headers': headers });
  var json = JSON.parse(response.getContentText());
  json.data.forEach(x => {
    if (x.id == id) {
      console.log(x.name, x.quote.EUR.price)
      return x.quote.EUR.price
    }
  })
}

示例输出:

Sample 1 Sample 2

参考:

© www.soinside.com 2019 - 2024. All rights reserved.