Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
执行多个fromJSON查询(jsonlite)_R_Jsonlite - Fatal编程技术网

执行多个fromJSON查询(jsonlite)

执行多个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 <

我是一个新手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 <- 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)