微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

从 LRS 获取 xAPI 语句

如何解决从 LRS 获取 xAPI 语句

看看下面的代码

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

代码能够从 lrs 获取前 100 条 xAPI 语句 - 100 条是每页显示的最大语句数 - 但不是之后的语句。

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

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

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)

解决方法

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

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)
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。