我有一个 yaml 文件,我正在尝试读入并循环提取一些数据。
我的 yaml 示例
---
THE/NAME/DOESNT/MATTER:
TEST_NAME: THIS/IS/WHAT/IS/DISPLAYS/ON/THE/HTML
RUN_PATH: example/testfiles/release
SOMETHING_ELSE: [1,2,3]
ANOTHER/PATH/LIKE/STRING:
TEST_NAME: USED/FOR/THE/HTML
RUN_PATH: example/testfiles/foo
我的代码
package main
import (
"fmt"
"os"
"io/ioutil"
"gopkg.in/yaml.v3"
)
func main() {
reportYAML := os.Args[1]
// userDictionary := os.Args[2]
yfile, err := ioutil.ReadFile(reportYAML)
if err != nil {
fmt.Printf("ERROR: Unable to open yaml file : %s\n", err)
}
data := make(map[interface{}]interface{})
error := yaml.Unmarshal([]byte(yfile), &data)
if error != nil {
fmt.Printf("ERROR: Unable to read yaml file : %s\n", err)
}
for _, value := range data {
fmt.Printf("%T\n", value)
}
}
yaml 将以类似的模式重复,我正在尝试提取 TEST_NAME 和 RUN_PATH。带 %T 的 Printf 给我map[string]interface {}和 %smap[RUN_PATH:example/testfiles/release SOMETHING_ELSE:[%!s(int=1) %!s(int=2) %!s(int=3)] TEST_NAME:THIS/IS/WHAT/IS/DISPLAYS/ON/THE/HTML]
我一直在尝试value["TESTNAME"]、value.(string)["TESTNAME"]和value["TESTNAME"].(string)其他一些变体,但它们都给我错误。
我知道这是一个简单的问题,但我对 GO 的经验很少,无法从以前类似的 stackoverflow 帖子中解决
附加上下文:每个 yaml 顶级键将包含多个键:值对,但我只对 TEST_NAME 和 RUN_PATH 感兴趣
慕田峪7331174
相关分类