我需要阅读R中的js来下载iso_3166_2数据。我怎么能用rjson来阅读?
library("rjson")
json_file <- "https://raw.githubusercontent.com/oodavid/iso-3166-2/master/iso_3166_2.js"
lines <- readLines(json_file)发布于 2021-03-07 05:33:00
像rjson和jsonlite这样的包希望读取格式正确的JSON数据,而不是任意的javascript文件。您可以用JSON验证器验证某些东西是JSON格式的。在这种情况下,您很幸运,它非常接近一个正确的JSON文件,您只需要清理一些东西。你只需要清理第一行和最后一行
json_file <- "https://raw.githubusercontent.com/oodavid/iso-3166-2/master/iso_3166_2.js"
lines <- readLines(json_file)
lines[1] <- gsub(".*(?={)", "", lines[1], perl=TRUE)
lines[length(lines)] <- gsub(";.*$", "", lines[length(lines)], perl=TRUE)
mydata <- jsonlite::fromJSON(paste(lines, collapse="\n"))在这里,我使用的是jsonlite而不是rjson,因为它更容易允许向量进行输入,并且似乎不会在引用编码时被绊倒。
https://stackoverflow.com/questions/66513069
复制相似问题