donglvhe7591 2017-12-21 10:41
浏览 57
已采纳

发出解析Yaml文件的问题

I have the following struct which filled after parsing yaml file The issue is that the quote is missing

File in.yaml

e.g.

_schema: "3.0.0"
bar:
- one

File out.yaml

_schema: 3.0.0
bar:
- one

As you can see I got 3.0.0 instead the “3.0.0” , Any idea how to overcome this

This is a small program which I've created to demonstrate the issue

package main

import (
    "gopkg.in/yaml.v2"
    "io/ioutil"
)

type Config struct {
    Schema string `yaml:"_schema"`
    Bar []string
}

func main() {

    cfg := Config{}
    source, err := ioutil.ReadFile("in.yaml")
    if err != nil {
        panic(err)
    }
    err = yaml.Unmarshal([]byte(source), &cfg)
    if err != nil {
        panic(err)
    }
    y, _ := yaml.Marshal(&cfg)
    err = ioutil.WriteFile("out.yaml", y, 0644)}

}
  • 写回答

1条回答 默认 最新

  • dongyue1988 2017-12-21 13:31
    关注

    YAML standard doesn't require quoting of all values, only when you want to use escape sequences or you are using certain characters.

    This library you are using adds "..." around the string only when it's necessary. For example if you used a colon in string (try: "3:0:0") it'll stay in double quotes.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 wincc已组态的变量过多
  • ¥60 如图:直线与椭圆X轴平行,求直线与椭圆任意一点的相切坐标计算公式
  • ¥50 如何用python使用opencv里的cv::cudacodec::VideoWriter函数对视频进行GPU硬编码
  • ¥100 c#solidworks 二次开发 工程图自动标边线法兰 等折弯尺寸怎么标
  • ¥15 halcon DrawRegion 提示错误
  • ¥15 FastAPI Uvicorn启动显示404
  • ¥15 centos7.9脚本,怎么排除特定的访问记录
  • ¥15 关于#Django#的问题:我的静态文件呢?
  • ¥15 关于CPLEX的问题,请专家解答
  • ¥15 cocos的点击事件 怎么穿透到 原生fragment上。