从网页/ JSON将单个值导入Google电子表格

时间:2018-06-22 10:57:05

标签: json google-apps-script import google-sheets

有一个网页: https://steexp.com/account/GDDHGJNRGR75ZQOXRD3FVGBTXS23JOIYYZX7ZNED7P4EQSNRR57MA54U

我正在尝试将XLM余额值(当前为4.9999897)导入Google电子表格。在此阶段,我尝试使用以下公式,但返回错误“导入的内容为空”。

=IMPORTHTML("https://steexp.com/account/GDDHGJNRGR75ZQOXRD3FVGBTXS23JOIYYZX7ZNED7P4EQSNRR57MA54U", "table", 1)

同时,在Chrome的DevTools / Console中运行以下代码会提供所需的表索引“ 1”:

var i = 1; [].forEach.call(document.getElementsByTagName("table"), function(x) { console.log(i++, x); }) 

我还尝试了IMPORTXML,但在其他情况下却成功了,但没有成功:

=IMPORTXML("https://steexp.com/account/GDDHGJNRGR75ZQOXRD3FVGBTXS23JOIYYZX7ZNED7P4EQSNRR57MA54U", "//span[@class='break']")

或者,有一个JSON页面包含相同的必需信息: https://horizon.stellar.org/accounts/GDDHGJNRGR75ZQOXRD3FVGBTXS23JOIYYZX7ZNED7P4EQSNRR57MA54U

我试图使用以下自定义函数从中提取余额值,就像徒劳无功一样:

function GetXLMBalance(xlmAddress) {
    var response = UrlFetchApp.fetch('https://horizon.stellar.org/accounts/' + xlmAddress);
    var json = response.getContentText();
    var data = JSON.parse(json);
    return data.balance;
}

如果我需要提取“序列”值,那么上面的脚本可以很好地解决问题,但是对于“平衡”则没有帮助,因为它返回空白值。这里的问题还在于页面包含两个“ balance”值,但是我需要第二个值(其后是“ asset_type”:“ native”)。

对于有关如何将提到的XLM余额值导入Google电子表格的任何建议,我们将不胜感激。

2 个答案:

答案 0 :(得分:1)

请尝试:

=--regexextract(index(IMPORTdata("https://horizon.stellar.org/accounts/GDDHGJNRGR75ZQOXRD3FVGBTXS23JOIYYZX7ZNED7P4EQSNRR57MA54U"),58,1),"\d*\.\d*")

拉相关的JSON字段,然后提取所需的部分并将其转换为数字。

答案 1 :(得分:0)

您可以使用循环查看返回的所有余额,并且仅在asset_type等于native时采取措施。

function GetXLMBalance(xlmAddress) {
  var response = UrlFetchApp.fetch('https://horizon.stellar.org/accounts/GDDHGJNRGR75ZQOXRD3FVGBTXS23JOIYYZX7ZNED7P4EQSNRR57MA54U');
  var json = response.getContentText();
  var data = JSON.parse(json);
  for (var i = 0; i < data.balances.length; i++) {
    if (data.balances[i]["asset_type"] == "native") { Logger.log(data.balances[i]["balance"]); }
  }
}