读取R中的json文件:词法错误:json文本中的字符无效

读取R中的json文件:词法错误:json文本中的字符无效,json,r,rcurl,jsonlite,Json,R,Rcurl,Jsonlite,下面是我正在使用的代码示例: library(jsonlite) library(curl) #url url = "http://www.zillow.com/search/GetResults.htm?spt=homes&status=001000&lt=000000&ht=010000&pr=999999,10000001&mp=3779,37788&bd=0%2C&ba=0%2C&sf=,&lot=0%2C&

下面是我正在使用的代码示例:

library(jsonlite)
library(curl)

#url
url = "http://www.zillow.com/search/GetResults.htm?spt=homes&status=001000&lt=000000&ht=010000&pr=999999,10000001&mp=3779,37788&bd=0%2C&ba=0%2C&sf=,&lot=0%2C&yr=,1800&singlestory=0&hoa=0%2C&pho=0&pets=0&parking=0&laundry=0&income-restricted=0&pnd=0&red=0&zso=0&days=36m&ds=all&pmf=0&pf=0&sch=100111&zoom=6&rect=-91307373,29367814,-84759521,35554574&p=1&sort=globalrelevanceex&search=maplist&rid=4&rt=2&listright=true&isMapSearch=true&zoom=6"

#json
results_data_json = fromJSON(txt = url)
我曾经能够毫无问题地运行类似的代码。现在我得到了以下错误:

Error in feed_push_parser(buf) : 
  lexical error: invalid char in json text.
                                   <html><head><title>Zillow: Real
                 (right here) ------^
feed\u push\u解析器(buf)中的
错误:
词法错误:json文本中的字符无效。
齐洛:真的吗
(就在这里)------^

对此有什么想法吗?

我也不能复制错误

class(results_data_json)
[1] "list"
我的会话信息:

R version 3.3.2 (2016-10-31)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 7 x64 (build 7600)

locale:
[1] LC_COLLATE=Spanish_Colombia.1252  LC_CTYPE=Spanish_Colombia.1252    LC_MONETARY=Spanish_Colombia.1252
[4] LC_NUMERIC=C                      LC_TIME=Spanish_Colombia.1252    

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
[1] curl_2.4     jsonlite_1.1

loaded via a namespace (and not attached):
[1] tools_3.3.2
作为:

仅安装软件包是不够的。您需要加载 图书馆也是。。。使用库(rjson)或库(RJSONIO)或。。。依靠 在调用包中的任何函数之前,选择哪个包


这发生在我从文件中读取json时。代码有一天起作用,第二天我就出现了这个错误。虽然我不明白为什么我的解决方案有效,但我最终还是能够避免这个错误。首先,我发现一篇github帖子建议添加readLines()函数。例如

r_object <- fromJSON(readLines("file.json"))

然后,没有特别的原因,我尝试在JSON的底部添加一行额外的内容。最后一个花括号后面只有一个空行。这就解决了问题。不知道为什么。如果有人知道为什么会这样,请发表评论

很可能您达到了自动查询阈值限制(如果您要检查HTML的整个文本,它甚至可能会这样说)。IOW:你没有找回JSON,你得到的是一个HTML页面,这可能是你没有找回JSON的原因。@hrbrmstr这就是我所想的-看起来当我转到实际的url时,我必须回答验证码。有办法解决这个问题吗?或者我必须等到限额重新设定吗?我会浏览他们的网站,看看他们可能会说他们做了什么利率限制。您必须在所述限制内工作,并且-是-等待当前块被释放。有趣的是,我无法复制错误。它运行良好,没有任何错误。在Rstudio版本1.0.44上使用Microsoft R 3.3.0可能会给您一个更礼貌的回答。不过,它可能是XML格式的。这与其说是回答,不如说是评论。你能描述一下你是如何添加这一行的吗?@Lukas我在文本编辑器中打开json,转到最后一行,然后按enter键并保存。
Warning message:
In readLines("file.json") : incomplete final line found on 'file.json'.