2013-07-15 59 views
3

我有一个JSON文件,如下所示:JSON格式CSV格式转换,使用R

library(RCurl) 
library(RJSONIO) 
url <- 'http://www.pm25.in/api/querys/aqi_details.json?city=shijiazhuang&token=5j1znBVAsnSf5xQyNQyq' 
web <- getURL(url) 
raw <-fromJSON(web) 

我想把它转换成csv文件是这样的:

aqi area co  co_24h no2 no2_24h o3 o3_24h o3_8h o3_8h_24h pm10 
142 石家庄 1.509 1.412 95  47 3 137 35  90 119 
pm10_24h pm2_5 pm2_5_24h position_name primary_pollutant quality so2 
195  80 108  化工学校  颗粒物(PM2.5)  轻度污染 33 
so2_24h station_code   time_point 
32  1028A 2013-07-15T23:00:00Z 

我用as.data .frame()等功能,但没有奏效。 我该怎么做?请帮助我,谢谢。

+0

请发布一个(小的,可重现的)对象'raw'的例子。您的解决方案可能与'write.csv(raw,'raw.csv')'一样简单,具体取决于您当前拥有的列名称等等。 –

回答

2

必须有一个更可读的解决方案...... 以下与NA小号取代了NULL S, 呼吁as.data.frame每一行, 与rbind结合行。

tmp <- lapply(raw, function(u) 
    lapply(u, function(x) if(is.null(x)) NA else x) 
) 
tmp <- lapply(tmp, as.data.frame) 
tmp <- do.call(rbind, tmp) 
tmp 
+0

它的工作,谢谢:) – Benyu