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

rryofs0p  于 2023-02-06  发布在  其他
关注(0)|答案(8)|浏览(197)

下面是我使用的代码的一个例子:

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) ------^

有什么想法吗?

py49o6xq

py49o6xq1#

我从一个文件阅读JSON时遇到过这种情况。代码运行了一天,第二天我就遇到了这个错误。我最终能够绕过这个错误,尽管我不明白为什么我的解决方案能正常工作。我发现GitHub的一篇帖子建议添加readLines()函数。

r_object <- fromJSON(readLines("file.json"), warn = F)

“warn”参数被设置为FALSE,以抑制由于许多JSON文件中缺少最终EOL而触发的警告消息。

7vhp5slm

7vhp5slm2#

这似乎是一个与R中当前工作目录有关的问题。
您可以通过在RStudio控制台中输入“getwd()”来查看当前的工作目录。
如果这个目录路径没有指向包含json文件的目录,那么R不知道如何找到这个文件。
您可以使用“setwd()"更改当前工作目录。例如“setwd(/Users/me/Documents/jsonFiles/)”
或者,您也可以让您的代码指向任何给定文件的完整目录路径。这将使您的代码对任何可能随时间发生的工作目录更改都具有健壮性。但是,这并不意味着在其他人的计算机上使用此代码将需要编辑这些路径。您可以通过在终端中导航到感兴趣的文件并键入“pwd”来查找任何给定文件的完整路径代表“当前工作目录”。这适用于Mac和Linux。在Windows机器上从终端运行“cd”。

yrdbyhpb

yrdbyhpb3#

我也不能复制错误。

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
gcxthw6b

gcxthw6b4#

发布这个以防其他人遇到这个问题...我不得不将打开的文件设置为我的工作目录,它又开始正常工作了。非常简单。只需右键单击打开的json文件。

6kkfgxo0

6kkfgxo05#

在我的mac电脑上,是iCloud造成的,json文件已经存储在云端,R找不到,下载文件修复了,你的情况可能是这样,也可能不是。
抱歉,我晚了将近五年。

hrysbysz

hrysbysz6#

同样的事情发生在我身上,就像上面的@ADF一样.... a a几个月前我有一个完整的项目,当我再次访问时,fromJSON突然不工作了。
我发现即使我在文件浏览器中将文件命名为“name.json”,我的R目录显示它为“name.json.txt"。请仔细检查您的文件名和它在目录中显示的内容是否匹配!

5hcedyr0

5hcedyr07#

如果你怀疑JSON文件是否有效,用另一种方法测试它(有在线工具)。对我来说,问题是我把文件名弄错了,出于某种原因IS给出了同样的错误(而不是丢失文件)

jgovgodb

jgovgodb8#

作为:R 3.2.2: "rjson" and "RJSONIO" package installed, but error using "fromJSON"
只安装软件包是不够的,你还需要加载库...使用库(rjson)或库(RJSONIO)或...这取决于你喜欢哪个软件包,然后再调用其中的任何函数。

相关问题