我尝试从R中的JSON文件中提取数据时出现问题

时间:2015-11-03 20:18:04

标签: json r amazon-s3

当我尝试从URL

中的JSON格式文件中提取数据时,我遇到了一些问题

当我使用:jsonlite

  

等级= jsonlite :: fromJSON(" url.json&#34)   open.connection出错(con," rb"):HTTP错误403。

当我使用RJONIO时

  

等级= RJSONIO :: fromJSON(" url.json&#34)   fromJSON中的错误(content,handler,default.size,depth,allowComments ,:     无效的JSON输入

当我使用rjson时

  

等级= rjson :: fromJSON(" url.json&#34)   rjson :: fromJSON中的错误(" url.json"):     意想不到的性格' h'

它能是什么?如何修复和提取数据?

谢谢

2 个答案:

答案 0 :(得分:2)

我刚与jsonlite有类似的问题,所以我想我会分享。

merge

如果所需的API调用中有空格,则Jsonlite需要Error in open.connection(con, "rb") : HTTP error 400.

答案 1 :(得分:1)

rjson包对我来说完全没问题。您可以做的最简单的事情是向您的API发送查询:

rjson::fromJSON(file = 'query to your API')

以下是OSRM路由计算机查询的工作示例,该计算机返回瑞士两点之间的路由。

rjson::fromJSON(file = 'http://router.project-osrm.org/viaroute?loc=47,8&loc=47.3,8.5')

结果是您可以直接存储或使用的列表。以下示例为您提供这两点之间的旅行时间。

rjson::fromJSON(file = 'http://router.project-osrm.org/viarouteloc=47,8&loc=47.3,8.5')$route_summary$total_time

只要您的查询正确,就应该开展工作。

根据您的情况,最好先尝试阅读一些行,因为您正在阅读的文件似乎很大。

line1 <- rjson::fromJSON(readLines("http://s3.amazonaws.com/databritanica/crimenesLocaciones.json", n = 1))

非常适合我。 n方法中的参数readLines指定要读取的行数。