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

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

Go-yaml 控制字符不允許錯(cuò)誤

Go-yaml 控制字符不允許錯(cuò)誤

Go
不負(fù)相思意 2021-11-22 16:10:04
我正在嘗試制作一個(gè)非常簡單的 ssh 地址簿程序。獲取有關(guān) ssh 地址的一些信息并將它們存儲在 yaml 文檔中。我這樣做的部分原因是為了了解 Go 并且遇到了一個(gè)小問題。我可以序列化數(shù)據(jù)并將文檔放入文件中,但是當(dāng)我嘗試讀回它時(shí)出現(xiàn)此錯(cuò)誤:yaml: control characters are not allowed我不確定此錯(cuò)誤消息的含義,谷歌搜索沒有產(chǎn)生任何有用的結(jié)果。有任何想法嗎?這些是我用來組織數(shù)據(jù)的結(jié)構(gòu):type EntriesList struct {    SSHEntries []SSHEntry `yaml:"sshentries"`}   type SSHEntry struct {    Name    string `yaml:"name"`    Command SSHCmd `yaml:"command"`}   type SSHCmd struct {    Addr  string `yaml:"addr"`    Port  int    `yaml:"port"`    Uname string `yaml:"uname"`}   它將我的數(shù)據(jù)放入的格式是:---entrieslist: - name: entry1   command:     addr: somewhere     port: 22     uname: someone - name: entry2 ... etc 我用 YAML 驗(yàn)證器檢查了這個(gè) ^^,它是合法的 YAML。這是我讀取文件的函數(shù):// CONF is the path to the filefunc readConf(CONF string) *EntriesList {    configFile := openConfigFile(CONF)    defer configFile.Close()    buffer := make([]byte, 512, 512)    _, err := configFile.Read(buffer)    check(err)    var entries EntriesList    err = yaml.Unmarshal(buffer, &entries)    data, _ := yaml.Marshal(entries)    fmt.Println(string(data))    return &entries}
查看完整描述

2 回答

?
浮云間

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

想通了,問題是我的緩沖區(qū)太大了。如果您的 []byte 太大,那么 go-yaml 會將這些額外的字節(jié)讀取為字符并拋出錯(cuò)誤。我將代碼更改為:


func readConf(CONF string) *EntriesList {

    confiFile, err := ioutil.ReadFile(CONF)

    check(err)

    var entries EntriesList

    err = yaml.Unmarshal(confiFile, &entries)

    check(err)

    return &entries

}

它按預(yù)期工作。


查看完整回答
反對 回復(fù) 2021-11-22
?
冉冉說

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

從它的聲音來看,您在https://github.com/go-yaml/yaml/blob/53feefa2559fb8dfa8d81baad31be332c97d6c77/readerc.go#L347 上遇到了錯(cuò)誤塊,看起來這也應(yīng)該告訴您偏移量(在文件中它遇到有問題的字符)和字符代碼。如果這些信息足以解決您的問題,那就太好了。另一方面,如果 yaml 庫吐出經(jīng)過驗(yàn)證的 yaml,它不適合接受作為輸入,您應(yīng)該在https://github.com/go-yaml/yaml/issues上向 Github 上的維護(hù)者提出問題

查看完整回答
反對 回復(fù) 2021-11-22
  • 2 回答
  • 0 關(guān)注
  • 853 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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