将CSV获取为INOUT,并在管道工API R中输出CSV
我想在管道工API中获得CSV的输入,并将其输出为CSV 我可以单独做这两件事(借助下面所附的链接) 但我不能一起做 使用Github链接中的序列化程序:将CSV获取为INOUT,并在管道工API R中输出CSV,r,plumber,R,Plumber,我想在管道工API中获得CSV的输入,并将其输出为CSV 我可以单独做这两件事(借助下面所附的链接) 但我不能一起做 使用Github链接中的序列化程序: serializer_csv <- function(){ function(val, req, res, errorHandler){ tryCatch({ res$setHeader("Content-Type", "text/plain") res$setHeader("Content-Disp
serializer_csv <- function(){
function(val, req, res, errorHandler){
tryCatch({
res$setHeader("Content-Type", "text/plain")
res$setHeader("Content-Disposition", 'attachment; filename="xxx.csv"')
res$body <- paste0(val, collapse="\n")
return(res$toResponse())
}, error=function(e){
errorHandler(req, res, e)
})
}
}
plumber::addSerializer("csv", serializer_csv)
plumber::plumber$new("plumber-csv.R")$run(port = 8833)
serializer\u csv这项工作在管道工的4.6.0版中进行,但有点粗糙。您可以将write.csv
和read.csv
替换为write
,fread
来自data.table
或format\u csv
来自readr
图书馆(水管工)
serializer_csv这项工作在管道工的4.6.0版中进行,但有点粗糙。您可以将write.csv
和read.csv
替换为write
,fread
来自data.table
或format\u csv
来自readr
图书馆(水管工)
serializer_csv只是为了澄清一下,您希望将一个文件作为csv发送给管道工,而不是希望输出也是csv文件?是的。没错。但是我会在CSV上做一些操作。我想说清楚,你想把一个文件作为CSV发送给水管工,而不是把输出也作为CSV文件?是的。没错。但是我会在CSV上做一些操作。谢谢。我今天会试试这个,让你知道!谢谢我今天会试试这个,让你知道!
#* @serializer csv
#* @get /csv
function() {
df <- data.frame(CHAR = letters, NUM = rnorm(length(letters)), stringsAsFactors = F)
csv_file <- tempfile(fileext = ".csv")
on.exit(unlink(csv_file), add = TRUE)
write.csv(df, file = csv_file)
readLines(csv_file)
}