首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在R中使用rjson包读取iso_3166_2.js

在R中使用rjson包读取iso_3166_2.js
EN

Stack Overflow用户
提问于 2021-03-07 04:01:07
回答 1查看 40关注 0票数 0

我需要阅读R中的js来下载iso_3166_2数据。我怎么能用rjson来阅读?

代码语言:javascript
复制
library("rjson")
json_file <- "https://raw.githubusercontent.com/oodavid/iso-3166-2/master/iso_3166_2.js"
lines <- readLines(json_file)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-03-07 05:33:00

rjsonjsonlite这样的包希望读取格式正确的JSON数据,而不是任意的javascript文件。您可以用JSON验证器验证某些东西是JSON格式的。在这种情况下,您很幸运,它非常接近一个正确的JSON文件,您只需要清理一些东西。你只需要清理第一行和最后一行

代码语言:javascript
复制
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,因为它更容易允许向量进行输入,并且似乎不会在引用编码时被绊倒。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66513069

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档