问题描述
我正在尝试有效地将(对我而言)格式怪异的 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 (将#修改为@)