首页 > 解决方案 > 在 R 中打开 JSON 文件

问题描述

我从以下站点下载了一些数据作为 zip 文件并将其解压缩到我的计算机上。现在,我在尝试打开包含的 json 数据文件时遇到了麻烦。

运行以下代码:

install.packages("rjson")
library("rjson")
comp <- fromJSON("statsbomb/data/competitions")

给出了这个错误:

fromJSON("statsbomb/data/competitions") 中的错误:意外字符 's'

另外,有没有办法一次加载所有文件而不是每次都编写单独的语句?

标签: rjson

解决方案


该函数fromJSON将 JSON 字符串作为第一个参数,除非您指定要提供文件 ( fromJSON(file = "competitions.json"))。

您提到的错误来自试图解析'statsbomb/data/competitions'为字符串而不是文件名的函数。然而,在 JSON 中,所有内容都包含在括号中,字符串包含在引号内。所以sfrom"statsbomb"不是有效的第一个字符。

要读取所有 json 文件,您可以执行以下操作:

lapply(dir("open-data-master/",pattern="*.json",recursive = T), function(x) {
  assign(gsub("/","_",x), fromJSON(file = paste0("open-data-master/",x)), envir = .GlobalEnv)
})

但是,这将需要很长时间才能完成!您可能应该详细说明此功能。例如,在运行 lapply 调用之前将获得的文件列表拆分dir为 50 个块。


推荐阅读