执行多个fromJSON查询(jsonlite)
我是一个新手R用户,找不到任何我能理解的答案 我的目标是从URL检索信息,然后将信息转换为数据帧以供使用执行多个fromJSON查询(jsonlite),r,jsonlite,R,Jsonlite,我是一个新手R用户,找不到任何我能理解的答案 我的目标是从URL检索信息,然后将信息转换为数据帧以供使用 install.packages("jsonlite") library(jsonlite) fromJSON("https://developers.onemap.sg/commonapi/search?searchVal=revenue&returnGeom=Y&getAddrDetails=Y&pageNum=1)") #it works x1 <
install.packages("jsonlite")
library(jsonlite)
fromJSON("https://developers.onemap.sg/commonapi/search?searchVal=revenue&returnGeom=Y&getAddrDetails=Y&pageNum=1)")
#it works
x1 <- as.character("https://developers.onemap.sg/commonapi/search?searchVal=revenue&returnGeom=Y&getAddrDetails=Y&pageNum=1)")
fromJSON(x1) #also works
fromJSON(paste("x",1,sep=""))
=> Error: lexical error: invalid char in json text.
install.packages(“jsonlite”)
图书馆(jsonlite)
fromJSON(“https://developers.onemap.sg/commonapi/search?searchVal=revenue&returnGeom=Y&getAddrDetails=Y&pageNum=1)")
#它起作用了
x1错误:词法错误:json文本中的字符无效。
我哪里出错了?我验证了粘贴(“x”,1,sep==”)等同于“x1”,所以它不应该工作吗
在任何情况下,我实际上计划将邮政编码列表放在一个数据框中,以替换每个searchVal=生成一个URL列表,为每个URL获取一个数据框,然后将它们合并在一起。但是考虑到我面临的困难,我想我会先从上面得到帮助
提前多谢 我认为您试图使用字符串作为变量,在当前设置中,R知道x1,但“x1”只是一个字符串。我希望有人能更好地解释。所以你需要使用评估
fromJSON(eval(parse(text=paste('x',1,sep=''))))
您试图使用字符串作为变量。这些是完全不同的数据类型 见: 字符串是字符向量,所以
paste("x",1,sep="")
你得到的是字符向量“x1”
然而,当你这样做时(顺便说一句,我在最后为你更正了“和”)
x1只需建立一个URL列表,然后对数据帧使用lappy:json\u list谢谢!这很有效。我期待有人能更好地解释-我不明白为什么R能够理解x1的意思,但无法理解粘贴('x',1,sep='')的意思。我必须看看是什么?解析和?eval做什么(那么请理解),但如果有人觉得很仁慈,你也可以帮助解释一下!它也适用于其他语言,例如python有自己的eval()。什么paste('x',1,sep='')
所做的是创建不等于变量x1的字符“x1”,因此我们将该字符传递给eval,eval尝试将其作为变量计算[如果我错了,有人可以纠正我]。请尝试阅读eval()函数的文档,我希望它能有所帮助。
x1 <- as.character("https://developers.onemap.sg/commonapi/search?searchVal=revenue&returnGeom=Y&getAddrDetails=Y&pageNum=1")
region <- "10000032"
url <- paste("https://esi.tech.ccp.is/latest/markets/", region, "/orders/?order_type=sell&page=1", sep="")
df <- fromJSON(url)