programing

데이터 프레임을 JSON으로 변환

css3 2023. 3. 21. 22:27

데이터 프레임을 JSON으로 변환

json 형식으로 변환하고 싶은 데이터 프레임이 있습니다.

res1이라는 데이터 프레임:

library(rjson)

structure(list(id = c(1, 2, 3, 4, 5), value = structure(1:5, .Label = c("server1", 
"server2", "server3", "server4", "server5"), class = "factor")), .Names = c("id", 
"value"), row.names = c(NA, -5L), class = "data.frame")

할 때:

toJSON(res1)

알겠네.

{"id":[1,2,3,4,5],"value":["server1","server2","server3","server4","server5"]}

이 json 출력물이 이렇게 됐으면 좋겠는데, 생각나는 거 없어요?

[{"id":1,"value":"server1"},{"id":2,"value":"server2"},{"id":3,"value":"server3"},{"id":4,"value":"server4"},{"id":5,"value":"server5"}]

jsonlite 패키지는 "JSON 데이터와 R 객체 간의 실용적이고 일관된 매핑"이라는 정확히 이 문제에 대처하기 위해 존재합니다.

그것의.toJSONfunction은 다음과 같은 원하는 결과를 기본 옵션으로 제공합니다.

library(jsonlite)
x <- toJSON(res1)
cat(x)

## [{"id":1,"value":"server1"},{"id":2,"value":"server2"},
## {"id":3,"value":"server3"},{"id":4,"value":"server4"},
## {"id":5,"value":"server5"}]

어때.

library(rjson)
x <- toJSON(unname(split(res1, 1:nrow(res1))))
cat(x)
# [{"id":1,"value":"server1"},{"id":2,"value":"server2"},
# {"id":3,"value":"server3"},{"id":4,"value":"server4"},
# {"id":5,"value":"server5"}]

사용방법split()기본적으로 큰 data.frame을 각 행에 대해 별도의 data.frame으로 분할합니다.그리고 결과 목록에서 이름을 삭제함으로써toJSON함수는 지정된 개체가 아닌 배열로 결과를 래핑합니다.

이제 전화만 쉽게 할 수 있습니다.jsonlite::write_json()데이터 프레임에 직접 접속할 수 있습니다.

를 사용할 수도 있습니다.library(jsonify)

jsonify::to_json( res1 )
# [{"id":1.0,"value":"server1"},{"id":2.0,"value":"server2"},{"id":3.0,"value":"server3"},{"id":4.0,"value":"server4"},{"id":5.0,"value":"server5"}]

언급URL : https://stackoverflow.com/questions/25550711/r-convert-dataframe-to-json