reading a json file in R: lexical error: invalid c

2019-04-04 19:02发布

问题:

Here is an example of the code I'm using:

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)

I used to be able to run similar code to this with no issue. Now I'm getting the following error:

Error in feed_push_parser(buf) : 
  lexical error: invalid char in json text.
                                   <html><head><title>Zillow: Real
                 (right here) ------^

Any ideas around this?

回答1:

I can't replicate error neither.

class(results_data_json)
[1] "list"

My sessioninfo:

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


回答2:

This happened to me reading in a json from a file. The code worked one day, and then the next day I got this error. I was eventually able to circumvent the error although I do not understand why my solution works. First, I found a github post that suggested adding the readLines() function. Eg.

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

When I did this the json loaded correctly but I got the following warning:

Warning message:
In readLines("file.json") : incomplete final line found on 'file.json'.

Then, for no particular reason, I tried adding an additional line to the bottom of the JSON. Just a blank line after the last curly bracket. And that fixed it. No idea why. If anyone knows why this worked, please drop a comment.



回答3:

As: R 3.2.2: "rjson" and "RJSONIO" package installed, but error using "fromJSON"

Installing the package alone doesn't suffice. You need to load the library too... Use library(rjson) or library(RJSONIO) or ... depending on which package you prefer, before calling any functions in it.