R数据帧到JSON对象数组
R dataframe to JSON array of objects
我有一个格式如下的 R 数据帧
id code value
1 A 3
2 B 5
3 C 9
使用:
toJSON(df)
returns:
[{id:1,code:A,value:3},...]
我想要的输出是:
[{1,A,3},{2,B,5}..]
使用
df <- unname(df)
returns an array of arrays, [[..],[..],...]]
我正在使用 jsonlite 包
正如@nicola 所说,您请求的内容 ([{1,A,3},{2,B,5},...]
) 无效 JSON。我相信你能得到的最接近的(没有名字)是这样的:
df <- read.table(header=TRUE, stringsAsFactors=FALSE, text='id code value
1 A 3
2 B 5
3 C 9')
library(jsonlite)
toJSON(lapply(seq.int(nrow(df)), function(i) unname(lapply(df, `[[`, i))),
auto_unbox=TRUE)
# [[1,"A",3],[2,"B",5],[3,"C",9]]
通常,jsonlite
喜欢将标量保留为一元向量,因此如果删除 auto_unbox=TRUE
分量,您将得到:
toJSON(lapply(seq.int(nrow(df)), function(i) unname(lapply(df, `[[`, i))))
# [[[1],["A"],[3]],[[2],["B"],[5]],[[3],["C"],[9]]]
根据您使用此数据的方式,它们在功能上可能相同。 (我同意未装箱的实现更容易让人阅读。)
两种方法都保留列值的类型(数字、字符串)。
我有一个格式如下的 R 数据帧
id code value
1 A 3
2 B 5
3 C 9
使用:
toJSON(df)
returns:
[{id:1,code:A,value:3},...]
我想要的输出是:
[{1,A,3},{2,B,5}..]
使用
df <- unname(df)
returns an array of arrays, [[..],[..],...]]
我正在使用 jsonlite 包
正如@nicola 所说,您请求的内容 ([{1,A,3},{2,B,5},...]
) 无效 JSON。我相信你能得到的最接近的(没有名字)是这样的:
df <- read.table(header=TRUE, stringsAsFactors=FALSE, text='id code value
1 A 3
2 B 5
3 C 9')
library(jsonlite)
toJSON(lapply(seq.int(nrow(df)), function(i) unname(lapply(df, `[[`, i))),
auto_unbox=TRUE)
# [[1,"A",3],[2,"B",5],[3,"C",9]]
通常,jsonlite
喜欢将标量保留为一元向量,因此如果删除 auto_unbox=TRUE
分量,您将得到:
toJSON(lapply(seq.int(nrow(df)), function(i) unname(lapply(df, `[[`, i))))
# [[[1],["A"],[3]],[[2],["B"],[5]],[[3],["C"],[9]]]
根据您使用此数据的方式,它们在功能上可能相同。 (我同意未装箱的实现更容易让人阅读。)
两种方法都保留列值的类型(数字、字符串)。