gpt4 book ai didi

go - 无法将 !!seq 解码为 Go 中的字符串

转载 作者:行者123 更新时间:2023-12-02 16:08:58 25 4
gpt4 key购买 nike

在 yaml 文件中使用数组序列时出现以下错误。我不确定需要应用什么修复程序,因为我是“Go”和学习该程序的新手。

2021/07/28 14:16:07 yaml: unmarshal errors:
line 3: cannot unmarshal !!seq into string

Yaml:

ENV:
attributes:
- foo
- boo
- coo

代码:

package test

import (
"fmt"
"gopkg.in/yaml.v3"
"io/ioutil"
"log"
"testing"
)

type ENV struct {
Attributes string `yaml:"attributes"`
}


func TestTerraformAzureCosmosDBExample(t *testing.T) {


yFile, err := ioutil.ReadFile("config.yaml")


if err != nil {
log.Fatal(err)
}

data := make(map[string]ENV)

err = yaml.Unmarshal(yFile, &data)
if err != nil {
log.Fatal(err)
}
for k, v := range data {
fmt.Printf(`key: %v, value: %v`, k,v)
}

}

预期:

富嘘咕咕

实际:

C:\Pfoo\boo>go test -v
=== RUN TestTerraformAzureCosmosDBExample
2021/07/28 14:16:07 yaml: unmarshal errors:
line 3: cannot unmarshal !!seq into string
exit status 1
FAIL foo_test 0.199s

最佳答案

正如 mkopriva 在评论中所说,您应该更改为 []string,因此结构将是

type ENV struct {
Attributes []string `yaml:"attributes"`
}

为什么会这样? yaml,重新调整ENV: attributes: - foo - boo - coo 作为一个数组。你可以做些什么来变成一个字符串,是使用:strings.Join(String Slice,{ 要分开的东西,你可以把它写成 "")`

导入是:“字符串”,strings.Join 返回一个字符串。

关于go - 无法将 !!seq 解码为 Go 中的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68562229/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com