【问题标题】:importing BTC historical data into spreadsheet将 BTC 历史数据导入电子表格
【发布时间】:2020-03-21 19:06:23
【问题描述】:

我正在尝试将包含所有收盘价 BTC 价格的列导入 Google 表格。 (在一组特定日期内) 我已经有了这个允许 importJSON 的脚本:

/**
* Imports JSON data to your spreadsheet Ex: IMPORTJSON("http://myapisite.com","city/population")
* @param url URL of your JSON data as string
* @param xpath simplified xpath as string
* @customfunction
*/
function IMPORTJSON(url,xpath){ 
  try{
    // /rates/EUR
    var res = UrlFetchApp.fetch(url);
    var content = res.getContentText();
    var json = JSON.parse(content);
    var patharray = xpath.split(".");
    //Logger.log(patharray);
    for(var i=0;i<patharray.length;i++){
      json = json[patharray[i]];
    }
    //Logger.log(typeof(json));
    if(typeof(json) === "undefined"){
      return "Node Not Available";
    } else if(typeof(json) === "object"){
      var tempArr = [];  
      for(var obj in json){
        tempArr.push([obj,json[obj]]);
      }
      return tempArr;
    } else if(typeof(json) !== "object") {
      return json;
    }
  }
  catch(err){
      return "Error getting data";  
  }
  
}

我能够得到的,即这个 JSON 调用的最后价格:

=importJSON("https://api.coingecko.com/api/v3/coins/marketsvs_currency=eur&ids=bitcoin","0.current_price")

无论如何,我无法进行正确的 JSON 调用或类似的操作,以导入包含从任意日期到当前日期的 btc 收盘价的列。 我安装了一个名为 cryptosheet 的电子表格扩展程序,并尝试使用 SS() 函数,但到目前为止没有任何效果。

【问题讨论】:

  • 可以提供nothing works so far的详细信息吗?例如,如果发生错误,请显示它。
  • 例如在 coinjecko api 文档中,这是对硬币价格历史的调用:''' api.coingecko.com/api/v3/coins/bitcoin/… ''' 所以我输入 ''' =importJSON("api.coingecko.com/api/v3/coins/bitcoin/…) '' '并且它说'''错误获取数据'''
  • 感谢您的回复。根据您的回复和问题,我提出了一个修改后的公式作为答案。你能确认一下吗?如果我误解了您的问题并且这不是您想要的方向,我深表歉意。

标签: json google-sheets google-sheets-api


【解决方案1】:

根据您的回复和问题,我可以理解如下。

  • 您想使用您的脚本检索current_price 的值。
  • 网址是https://api.coingecko.com/api/v3/coins/bitcoin/history?date=30-12-2017&amp;localization=false

修改点:

  • 从您的回复来看,似乎没有使用 xpath。至此,我认为错误发生了。
  • 当我看到来自 URL 和脚本的数据时,公式可能如下。

修改公式:

=IMPORTJSON(A1, "market_data.current_price")
  • 在这种情况下,https://api.coingecko.com/api/v3/coins/bitcoin/history?date=30-12-2017&amp;localization=false 的 URL 被放到单元格“A1”中。

结果:

【讨论】:

  • 感谢您的回复,因为它更清楚如何使用 JSON 格式我仍然无法做我想要的:我想要一个列,其中包含给定时间范围内 btc 的所有收盘价;根据coinjeko docs,这是数据集的JSON位置:'''api.coingecko.com/api/v3/coins/bitcoin/…'''事实上,如果我继续访问该链接,那么前10天btc的所有克隆价格。现在,如果我尝试将该链接放在单元格 A1 中并在单元格 A2 中输入:''' =IMPORTJSON(A1, "prices") ''' 它只会给我一个序列从 0 到 240
  • @federico 感谢您的回复。首先,请问您我的回答是否解决了您的问题?不幸的是,从您的回复中,我无法理解我的回答是否解决了您的问题。这是因为我的英语水平不好。对此我深表歉意。
  • 1次API调用可以获取多个币的历史数据吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-02-16
  • 1970-01-01
  • 2012-05-03
  • 1970-01-01
  • 2014-07-22
  • 2014-07-31
  • 1970-01-01
相关资源
最近更新 更多