从互联网将 JSON 文件读入 R - 行问题 </html>



我正在尝试使用jsonlite包将以下JSON数据库读入R。

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

这样做会引发以下错误:

Error in parse_con(txt, bigint_as_char) : 
  lexical error: invalid char in json text.
                                       <html> <head> <title>funguild_d
                     (right here) ------^

显然,它不喜欢这些角色。我错过了这里有一个简单的工作吗?

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

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

相关内容

最新更新