我需要将从数据存储区查询的值列表存储到csv文件中
这是我正在尝试的代码
//WriteCsvFileHandler is to
func WriteCsvFileHandler(w http.ResponseWriter, r *http.Request, ps httprouter.Params) {
kinDiagnosisList := []Diagnosis{}
context := appengine.NewContext(r)
//Getting Namespace
namespace := ps.ByName("namespace")
ctx, err := appengine.Namespace(context, namespace)
if err != nil {
log.Infof(ctx, "Namespace error from GetAllDiagnosisForEncounterHandler")
RespondErr(w, r, http.StatusInternalServerError, err.Error())
return
}
file, err := os.Create("result.csv")
checkError("Cannot create file", err)
defer file.Close()
writer := csv.NewWriter(file)
defer writer.Flush()
q := datastore.NewQuery("Diagnosis")
data, err := q.GetAll(ctx, &kinDiagnosisList)
if err != nil {
log.Infof(ctx, "Keys generation error from GetAllDiagnosisForEncounterHandler")
RespondErr(w, r, http.StatusInternalServerError, err.Error())
return
}
for _, value := range {
err := writer.Write(value)
checkError("Cannot write to file", err)
}
}
func checkError(message string, err error) {
if err != nil {
log.Fatal(message, err)
}
}
如何将来自数据存储的诊断列表存储到csv文件中?
答案 0 :(得分:0)
您遇到错误吗?
您需要能够输出多少个实体?
可靠的答案是使用Google Dataflow,但您必须用Java或python编写该作业。
否则,如果您需要较少涉及的解决方案,则必须在处理程序提供文件之前在内存中构建文件。如果请求超时是您的问题,则可以通过Google TaskQueue调用该处理程序,以使超时最多增加10分钟,并将文件写入Google Cloud Storage。