我这样做
newzips=fromJSON("http://media.mongodb.org/zips.json")
您可以在http://media.mongodb.org/zips.json
处自行查看数据并得到
str(newzips)
List of 5
$ city : chr "ACMAR"
$ loc : num [1:2] -86.5 33.6
$ pop : num 6055
$ state: chr "AL"
$ _id : chr "35004\"}{\"city\":\"ADAMSVILLE\",\"loc\":[-86.959727,33.588437],\"pop\":10616,\"state\":\"AL\",\"_
答案 0 :(得分:6)
此格式称为jsonlines。您可以使用jsonite中的stream_in
函数导入它:
library(jsonlite)
zips <- stream_in(url("http://media.mongodb.org/zips.json"))
如果服务器使用https,您可以使用curl
包:
library(jsonlite)
library(curl)
zips <- stream_in(curl("https://media.mongodb.org/zips.json"))
每行是记录的数据集通常是nosql数据库转储。因为它们可能太大而无法一次解析所有内容,所以它们是逐行导入的,这正是jsonlite所做的。
答案 1 :(得分:4)
readLines +将其添加到带有一些括号和逗号分隔的JS数组中:
> json = fromJSON(paste("[",paste(readLines("http://media.mongodb.org/zips.json"),collapse=","),"]"))
Warning message:
In readLines("http://media.mongodb.org/zips.json") :
incomplete final line found on 'http://media.mongodb.org/zips.json'
> head(json)
city loc pop state _id
1 ACMAR -86.51557, 33.58413 6055 AL 35004
2 ADAMSVILLE -86.95973, 33.58844 10616 AL 35005
3 ADGER -87.16746, 33.43428 3205 AL 35006
4 KEYSTONE -86.81286, 33.23687 14218 AL 35007
5 NEW SITE -85.95109, 32.94145 19942 AL 35010
6 ALPINE -86.20893, 33.33116 3062 AL 35014