首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从LRS获取xAPI语句

从LRS获取xAPI语句
EN

Stack Overflow用户
提问于 2021-06-26 21:20:28
回答 1查看 48关注 0票数 0

看一下下面的代码。

我的目标是从学习记录存储(LRS)中获取xAPI语句。

代码能够从LRS中获取前100条xAPI语句- 100是每页显示的最大语句量-但不是后面的语句。

为了解决这个问题,我尝试创建一个循环,在这个循环中我使用一个计数器来获取下一个100条语句,依此类推。然而,我遇到了麻烦。当前代码不保存接下来的100条xAPI语句。它只是一遍又一遍地保存前100个。我该如何解决这个问题?

如果你需要更多的信息,请告诉我。

代码语言:javascript
复制
output <- data.frame()
counter <- 001L

base <- "https://lrs.com/servlet/ekp/xAPI/statements?from="
url <- paste0(base,counter)

while (TRUE) {
  res <- tryCatch({
    dat <- GET(url, authenticate(username, password, type = "basic"))
    dat <- content(dat, "text", encoding = "UTF-8")
    fromJSON(dat, flatten = TRUE)
  },error = function(e) NULL)
  if (length(res$statements) == 0) break
    output <- bind_rows(output, res$statements)
    counter <- counter + 100L
    print(counter)
}

output <- do.call(rbind, output)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-06-26 21:24:59

url不会改变,它应该包含在while循环中。

代码语言:javascript
复制
while (TRUE) {
  url <- paste0(base,counter)
  res <- tryCatch({
    dat <- GET(url, authenticate(username, password, type = "basic"))
    dat <- content(dat, "text", encoding = "UTF-8")
    fromJSON(dat, flatten = TRUE)
  },error = function(e) NULL)
  if (length(res$statements) == 0) break
  output <- bind_rows(output, res$statements)
  counter <- counter + 100L
  print(counter)
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68142782

复制
相关文章

相似问题

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