首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用ImportJson将Lichess.org国际象棋数据从这个Json文件导入到Google Sheets中?

如何使用ImportJson将Lichess.org国际象棋数据从这个Json文件导入到Google Sheets中?
EN

Stack Overflow用户
提问于 2021-09-15 15:26:05
回答 1查看 43关注 0票数 2

在过去的一周里,我一直在尝试在Google Sheets中为我的中学国际象棋俱乐部建立一个主排行榜。我们在Lichess.org网站上玩,它有一个很棒的应用程序接口。我设法使用ImportXML获得了锦标赛id,但是我试图访问的结果似乎无法通过添加到工作表中的任何ImportJson脚本来访问。

这是包含学生成绩源的页面,我想首先获得前3名中每一个的“姓名”和“分数”,我假设我不能只使用ImportXML从上面的链接中获取数据,即使它显示在"view page https://lichess.org/tournament/2bHOVix0“中。

假设这不起作用,我使用Lichess API通过这个链接http://lichess.org/api/tournament/NguuB8pO/results下载包含正确数据的json文件

这个"Importjson“不能工作有什么原因吗?API将json描述为ndjson有关系吗?= importjson ("http://lichess.org/api/tournament/NguuB8pO/results","/name")我尝试了至少20种不同的方法,并将不同的importjson脚本添加到我的工作表中。

提前感谢您所能提供的任何帮助。-Mike

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-09-15 16:02:39

尝试一下,假设url = https://lichess.org/tournament/2bHOVix0,table = /data/standing/players,xpath = /name /rank /rating /score

代码语言:javascript
复制
var resTable = []; 
function ImportJSON(url,table,xpath){
  var source = UrlFetchApp.fetch(url).getContentText()
  var jsonString = source.split('lichess.load.then(()=>{LichessTournament(')[1].split(')})</script>')[0]
  var data = JSON.parse(jsonString)
  var json = eval('data'+table.replace(/\//gm,"\."))
  if (typeof xpath == 'object'){var liste = xpath.join().split(",")} else {var liste = xpath.split("|")}
  if (json.length){json.forEach(function(elem){getData(elem,liste)})} else {getData(json,liste)}
  return resTable
}
function getData(elem,liste){
  var prov=[]
  liste.forEach(function(chemin){
    var t=chemin.split('/');
    var obj=elem;
    try{
      for (var i=1;i<t.length;i++){obj=obj.item(t[i])}
      if(typeof obj=='object'){prov.push('['+obj+']')}else{prov.push(obj)}
    }
    catch(e){prov.push('')}
  })
  resTable.push(prov)
}
Object.prototype.item=function(i){return this[i]};

https://docs.google.com/spreadsheets/d/1eBFjpgwRAXyNVXOODaCAviyAQv9YsDoLBGqhzM9sm2M/copy

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69195912

复制
相关文章

相似问题

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