第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

GO 從結(jié)構(gòu)中循環(huán)數(shù)據(jù)并將其轉(zhuǎn)換為字符串?dāng)?shù)組以生成 CSV

GO 從結(jié)構(gòu)中循環(huán)數(shù)據(jù)并將其轉(zhuǎn)換為字符串?dāng)?shù)組以生成 CSV

Go
慕田峪7331174 2023-08-21 14:06:54
我正在嘗試將我的數(shù)據(jù)放入 CSV 中。我非常接近。我現(xiàn)在遇到的問(wèn)題是 CSV 編寫器需要一個(gè) [] 字符串。但我不知道如何將我的數(shù)據(jù)從結(jié)構(gòu)中獲取到一個(gè) [] 字符串中。我正在循環(huán)遍歷 json 數(shù)據(jù)并將其附加到創(chuàng)建一個(gè)新模型。如何讓我的模型被接受?import (    "encoding/csv"    "fmt"    "log"    "os"    "strconv"    "time"    "bitbucket.org/exzeo-usa/devops-aws-report/models")func CreateCSV(incidents models.IncidentModel) {    fmt.Println("Creating CSV...")    m := []models.EndModel{}    for i := range incidents.Incidents {        m = append(m, models.EndModel{            IncidentNumber: strconv.Itoa(incidents.Incidents[i].IncidentNumber),            Title:          incidents.Incidents[i].Title,            CreatedAt:      incidents.Incidents[i].CreatedAt,            Notes:          GetNotes(incidents.Incidents[i].IncidentNumber),        })    }    fmt.Print(m)    writeCSV(m)    return}//writeCSV is a function create a .csv filefunc writeCSV(allData []models.EndModel) {    today := time.Now().Format("2006-01-02")    fileString := fmt.Sprintf("result-%v.csv", today)    //Create File    file, err := os.Create(fileString)    checkError("Cannot create file", err)    defer file.Close()    //Create the writer with the file    writer := csv.NewWriter(file)    defer writer.Flush()    //Create and Write to the CSV    err = writer.Write(allData)    checkError("Cannot write to file...", err)}func checkError(message string, err error) {    if err != nil {        log.Fatal(message, err)    }}
查看完整描述

1 回答

?
慕妹3242003

TA貢獻(xiàn)1824條經(jīng)驗(yàn) 獲得超6個(gè)贊

一般來(lái)說(shuō),您不能簡(jiǎn)單地從一種類型映射到另一種類型并讓編譯器弄清楚如何轉(zhuǎn)換數(shù)據(jù)。其他語(yǔ)言可能會(huì)提供一些語(yǔ)法糖或有一些推斷合理默認(rèn)值的先例,但 Go 故意不提供這種魔力。


您需要明確指示如何將數(shù)據(jù)結(jié)構(gòu)的每個(gè)實(shí)例轉(zhuǎn)換為要作為 CSV 行寫出models.EndModel的切片。[]string


像下面這樣:


// writeCSV is a function create a .csv file

func writeCSV(allData []models.EndModel) {


    today := time.Now().Format("2006-01-02")

    fileString := fmt.Sprintf("result-%v.csv", today)


    //Create File

    file, err := os.Create(fileString)

    checkError("Cannot create file", err)

    defer file.Close()


    // Create the writer with the file

    writer := csv.NewWriter(file)

    defer writer.Flush()


    // Create and Write to the CSV

    csvRows := make([][]string, len(allData))

    for i, model := range allData {

        csvRows[i] = []string{

            // Choose the ordering you wish in your output CSV

            model.IncidentNumber,

            model.Title,

            model.CreatedAt,

            model.Notes,

        }

    }


    // Note that you need to call WriteAll to pass multiple rows

    err = writer.WriteAll(csvRows)

    checkError("Cannot write to file...", err)


}


查看完整回答
反對(duì) 回復(fù) 2023-08-21
  • 1 回答
  • 0 關(guān)注
  • 198 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)