从internet将json文件读入R-遇到麻烦</html>;线

从internet将json文件读入R-遇到麻烦</html>;线,json,r,Json,R,我试图使用jsonlite包将以下JSON数据库读入R library(jsonlite) db <- fromJSON("http://www.stbates.org/funguild_db.php", flatten=TRUE) library(jsonlite) db@MrFlick是正确的,因为它不是提供数据的好方法。但和往常一样,这是有办法的。在这里,我使用rvest刮取整个页面,然后gsub删除第一个字符串,它恰好是url的最后一部分(减去.php扩展名) url% html

我试图使用
jsonlite
包将以下JSON数据库读入R

library(jsonlite)
db <- fromJSON("http://www.stbates.org/funguild_db.php", flatten=TRUE)
library(jsonlite)

db@MrFlick是正确的,因为它不是提供数据的好方法。但和往常一样,这是有办法的。在这里,我使用
rvest
刮取整个页面,然后
gsub
删除第一个字符串,它恰好是url的最后一部分(减去.php扩展名)

url%
html_text()

这根本不是一个正确的JSON文件。它是一个HTML文件,碰巧包含类似于JSON的数据。我不知道为什么有人会以这种方式提供数据,这似乎是个错误。@MrFlick-wow。好了,现在这就更有意义了。生物学家建立自定义数据库,这种情况有时会发生。。。。
Error in parse_con(txt, bigint_as_char) : 
  lexical error: invalid char in json text.
                                       <html> <head> <title>funguild_d
                     (right here) ------^
url <- "http://www.stbates.org/funguild_db.php"

library(rvest)
library(jsonlite)

js <- url %>% 
    read_html() %>%
    html_text() 

js <- jsonlite::fromJSON(gsub("funguild_db", "", js))

head(js[, 1:5])

#                       $oid                  taxon taxonomicLevel trophicMode          guild
# 1 58f450f1791497fd28ebfccc Xanthomonas campestris             20  Pathotroph Plant Pathogen
# 2 58f450f1791497fd28ebfccd  Xanthomonas juglandis             20  Pathotroph Plant Pathogen
# 3 58f450f1791497fd28ebfcce         Xanthoparmelia             13 Symbiotroph     Lichenized
# 4 58f450f1791497fd28ebfccf           Xanthopeltis             13 Symbiotroph     Lichenized
# 5 58f450f1791497fd28ebfcd0            Xanthopsora             13 Symbiotroph     Lichenized
# 6 58f450f1791497fd28ebfcd1         Xanthopsorella             13 Symbiotroph     Lichenized