[英]Opening JSON files in R
我已經從以下站點以zip文件的形式下載了一些數據,並將其提取到我的計算機上。 現在,我在嘗試打開包含的json數據文件時遇到了麻煩。
運行以下代碼:
install.packages("rjson")
library("rjson")
comp <- fromJSON("statsbomb/data/competitions")
給了這個錯誤:
fromJSON(“ statsbomb / data / competitions”)中的錯誤:意外字符's'
另外,有沒有一種方法可以一次加載所有文件,而不是每次都編寫單個語句?
這是我所做的(Unix系統)。
git clone https://github.com/statsbomb/open-data.git
setwd("path to directory where you cloned the repo")
jsonlite::fromJSON("competitions.json")
使用rjson
: rjson::fromJSON(file="competitions.json")
.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.