web-dev-qa-db-fra.com

lecture d'un fichier json dans R: erreur lexicale: caractère invalide dans le texte json

Voici un exemple du code que j'utilise:

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)

J'avais l'habitude de pouvoir exécuter un code similaire à celui-ci sans problème. Maintenant, j'obtiens l'erreur suivante:

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

Des idées à ce sujet?

14
ultimate8

Cela m'est arrivé en lisant un fichier json dans un fichier. Le code a fonctionné un jour, puis le lendemain, j'ai eu cette erreur. J'ai finalement réussi à contourner l'erreur même si je ne comprends pas pourquoi ma solution fonctionne. Tout d'abord, j'ai trouvé un article sur github qui suggérait d'ajouter la fonction readLines (). Par exemple.

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

Quand j'ai fait cela, le json s'est chargé correctement mais j'ai reçu l'avertissement suivant:

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

Puis, sans raison particulière, j'ai essayé d'ajouter une ligne supplémentaire au bas du JSON. Juste une ligne vierge après le dernier crochet. Et cela l'a corrigé. Je ne sais pas pourquoi. Si quelqu'un sait pourquoi cela a fonctionné, veuillez laisser un commentaire.

1
Ari Decter-Frain

Je ne peux pas non plus reproduire l'erreur.

class(results_data_json)
[1] "list"

Ma 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
1
gonzalez.ivan90