将 JSONstream 读入 R 数据帧

问题描述

我正在尝试有效地将(对我而言)格式怪异的 JSONstream 读入 R 数据帧。用于个人项目以了解更多 R。

我正在谈论的 json 是: https://livetiming.formula1.com/static/2021/2021-03-28_Bahrain_Grand_Prix/2021-03-28_Race/TimingAppData.jsonStream

它的格式类似于 ndjson,但在每个 json 条目之外都有一个时间戳。

我无法有效地将其读入数据帧。目前我将 jsonSTREAM 作为文本,使用正则表达式删除时间戳并使用它的换行符“\r\n”将结果字符串拆分为字符向量。然后我终于可以使用 ndjson::flatten 将其放入数据帧中。

上述内容很慢,我觉得我错过了一些明显的东西。有没有更好的方法来做到这一点?

我现在的代码如下:

library(httr)
library(ndjson)

url <- "https://livetiming.formula1.com/static/2021/2021-03-28_Bahrain_Grand_Prix/2021-03-28_Race/TimingAppData.jsonStream"
response <- content(GET(url),"text")
gsubbed_resp <- gsub("\\d{2}:\\d{2}:\\d{2}.\\d{3}","",response)
resp_chr_vector <- unlist(strsplit(gsubbed_resp,"\r\n"))
result <- ndjson::flatten(resp_chr_vector)

结果数据框是:

str(result)
Classes ‘data.table’ and 'data.frame':  1084 obs. of  536 variables:

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)