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

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何從 CSV 文件反序列化 json 逗號分隔的字符串

如何從 CSV 文件反序列化 json 逗號分隔的字符串

Go
慕的地8271018 2022-05-18 16:57:13
我有一個包含兩列 json1 和 json2 的 mysql 轉儲 csv 文件,這兩列都是 JSON 對象字符串表示形式。因此 csv 行如下所示:"{"field1":"value","field2":4}","{"field1":"value","field2":4}"我需要反序列化這兩個字符串,然后將 JSON 解組為 Go 值。我被困在第一步。我遇到了麻煩,,因為 JSON 字符串本身,在其中包含 s ,因此讀者在錯誤數(shù)量的字段中打破每一行,而不是根據(jù)需要使用兩個。這是我的完整代碼:reader := csv.NewReader(csvFile)reader.LazyQuotes = true //allows non-doubled quotes to appear in quoted fieldsfor {    record, err := reader.Read()    if err == io.EOF {        break    }    if err != nil {        log.Fatal(err)    }    fmt.Printf("json1: %s json2 %s\n", record[0], record[1])}我試過的我嘗試將 csv 分隔符設置為}","{,然后將相應的}和附加{到結果字符串,但是,除了容易出錯之外,一些行還有NULLjson1 或 json2。觀察我正在使用-golang 1.12.1
查看完整描述

1 回答

?
猛跑小豬

TA貢獻1858條經驗 獲得超8個贊

我只會使用strings.Split()拆分}","{(如果您確定這將始終有效)然后按照您的說法解組 JSON 字符串。你能讓轉儲文件以某種方式分隔嵌套引號嗎?


columns := strings.Split(`"{"field1":"value","field2":4}","{"field1":"value","field2":5}"`, `}","{`)

for i, s := range columns {

    if i == 0 {

        s = s[1:]  // remove leading quote

    }

    if i == len(columns) - 1 {

        s = s[:len(s)-1] // remove trailing quote

    }

    if i > 0 {

        s = "{" + s

    }

    if i < len(columns) - 1 {

        s += "}"

    }

    // unmarshal JSON ...

}

這有點麻煩,但即使某些字段為 NULL 也應該可以工作。


查看完整回答
反對 回復 2022-05-18
  • 1 回答
  • 0 關注
  • 105 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號