将JSON格式转换为CSV格式,使用R语言

3

I have a json file as follows:

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()和其他函数,但它们都没起作用。 请问应该怎么做呢?希望得到您的帮助,谢谢。


请提供一个(小型、可重现的)示例,展示对象“raw”的外观。您的解决方案可能只需要像write.csv(raw,'raw.csv')这样简单,具体取决于您当前所拥有的列名等信息。 - Carl Witthoft
1个回答

2

一定有更易读的解决方案... 以下代码将NULL替换为NA, 对每一行调用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

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