1

我正在尝试有效地将(对我而言)格式怪异的 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:
4

0 回答 0