簡體   English   中英

在R中打開JSON文件

[英]Opening JSON files in R

我已經從以下站點以zip文件的形式下載了一些數據,並將其提取到我的計算機上。 現在,我在嘗試打開包含的json數據文件時遇到了麻煩。

運行以下代碼:

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

給了這個錯誤:

fromJSON(“ statsbomb / data / competitions”)中的錯誤:意外字符's'

另外,有沒有一種方法可以一次加載所有文件,而不是每次都編寫單個語句?

這是我所做的(Unix系統)。

  1. 克隆Github倉庫(標記位置)
git clone https://github.com/statsbomb/open-data.git

  1. 設置工作目錄(克隆存儲庫或提取zip文件的目錄)。
setwd("path to directory where you cloned the repo")

  1. 讀取數據。
  jsonlite::fromJSON("competitions.json")

使用rjsonrjson::fromJSON(file="competitions.json")

  1. 要一次運行所有文件,請將所有.json文件移動到單個目錄,然后使用lapply/assign將對象分配給您的環境。

結果(單個文件):

  competition_id season_id             country_name
1             37         4                  England
2             43         3            International
3             49         3 United States of America
4             72        30            International
         competition_name season_name              match_updated
1 FA Women's Super League   2018/2019    2019-06-05T22:43:14.514
2          FIFA World Cup        2018 2019-05-14T08:23:15.306297
3                    NWSL        2018 2019-05-17T00:35:34.979298
4       Women's World Cup        2019 2019-06-21T16:45:45.211614
             match_available
1    2019-06-05T22:43:14.514
2 2019-05-14T08:23:15.306297
3 2019-05-14T08:02:00.567719
4 2019-06-21T16:45:45.211614

除非您指定要提供文件( fromJSON(file = "competitions.json") ),否則函數fromJSON將JSON字符串作為第一個參數。

您提到的錯誤來自試圖將'statsbomb/data/competitions'解析為字符串而不是文件名的函數。 但是,在JSON中,所有內容都括在方括號中,字符串在引號內。 因此, "statsbomb"s不是有效的第一個字符。

要讀取所有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個塊。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM