17

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?

  • 8
    It's likely you hit an automated query threshold limit (if you were to examine the whole text of that HTML it might even say so). IOW: you're not getting JSON back you're getting an HTML page that prbly has the reason you're not getting JSON back. – hrbrmstr Dec 06 '16 at 16:27
  • @hrbrmstr that's what I was thinking - it looks like I have to answer a captcha when I go to the actual url. Is there a way around this? Or do I have to wait until the limit resets? –  Dec 06 '16 at 16:31
  • I'd poke around their site to see what rate limiting they may state they do. You'll have to work within said limit and — aye — wait until your current block is released. – hrbrmstr Dec 06 '16 at 16:32
  • Interesting, I could not replicate the error. It runs fine without any error. Using Microsoft R 3.3.0 on Rstudio Version 1.0.44 – user5249203 Dec 06 '16 at 16:33
  • [Zillow does have APIs](http://www.zillow.com/howto/api/APIOverview.htm) which will probably give you a more polite response. It may be in XML, though. – alistaire Dec 06 '16 at 16:58
  • I received this error when processing data via the CMS API. I discovered that the Socrata API service was down and this was returning the error. If you are using a Socrata interface, you can check if the API service is down by looking here: https://status.socrata.com/. – StatsStudent Apr 30 '21 at 04:04

3 Answers3

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.

ADF
  • 173
  • 10
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
gonzalez.ivan90
  • 1,222
  • 12
  • 22
-6

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.

Community
  • 1
  • 1
d8aninja
  • 2,505
  • 4
  • 25
  • 47