从URL导入JSON文件到R

5

我一直在尝试使用rjson和RJSONIO包将JSON文件导入R中,但是我无法使其工作。我尝试了多种代码变体,例如:

json_file <- "http://toolserver.org/~emw/index.php?c=rawdata&m=get_traffic_data&p1=USA&project1=en&from=12/10/2007&to=4/1/2011"
json_data <- fromJSON(paste(readLines(json_file), collapse=""))

这会导致一个错误提示信息:
Error in fromJSON(paste(readLines(json_file), collapse = "")) : 
unexpected character '<'

我认为问题出在代码的第一行,因为json_file包含的是网站的源码,而不是实际的内容。我尝试了getURL()和getURLContent(),但都没有成功。非常感谢您的任何帮助!
编辑:正如Martin Morgan指出的那样,问题似乎与URL有关,而不是代码!

2
当我在浏览器中访问URL并查看页面源代码时,它是纯HTML,没有JSON。 - Martin Morgan
谢谢您的查看!您是正确的,但页面上显示的是JSON。您知道如何抓取它吗?我已经尝试了RCurl包中的一些函数,但到目前为止都没有成功。 - Steph
1
以前,在浏览器中输入URL会生成一个空白页面,并且fromJSON(json_file)会出错,就像你所指示的那样。现在,浏览器显示JSON,而library(RJSONIO); fromJSON(json_file)按预期工作。看起来服务的行为不一致,可能是因为在“他们”的端口存在问题,或者它被设计成以比仅仅指向URL更微妙的方式调用。 - Martin Morgan
哦,哇,它确实可以使用这个URL!我会联系工具的所有者。非常感谢您的跟进! - Steph
1个回答

4
library(rjson)
fromJSON(readLines('http://toolserver.org/~emw/index.php?c=rawdata&m=get_traffic_data&p1=USA&project1=en&from=12/10/2007&to=4/1/2011')[1])

对我来说可行,但有一个警告


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接