百度360必应搜狗淘宝本站头条
当前位置:网站首页 > IT知识 > 正文

YAML配置文件简介及使用

liuian 2025-02-09 13:14 39 浏览

简介

YAML 是 "YAML Ain't a Markup Language"(YAML 不是一种标记语言)的缩写。相比JSON格式的方便。


语法

  • 内容是大小写敏感
  • 使用缩进表示层级关系(有点像Python缩进)
  • 缩进只允许空格,不能使用tab代替
  • 缩进的空格数不重要,只要相同层级的元素左对齐即可
  • 注释使用"#"
  • key后面冒号要加一个空格



数据类型

YAML 支持以下常用几种数据类型:

  • 对象:键值对的集合,又称为映射(mapping)/ 哈希(hashes) / 字典(dictionary)
  • 数组:一组按次序排列的值,又称为序列(sequence) / 列表(list)
  • 纯量(scalars):单个的、不可再分的值

纯量

key对应value

name: opcai

使用缩进的方式

name: 
 ?  opcai

纯量是最基本的,不可再分的值,包括:

  • 字符串
  • 布尔值
  • 整数
  • 浮点数
  • Null
  • 时间
  • 日期

对象

account: { name: opcai }

使用缩进方式

account: 
 ?  name: opcai

数组

- 开头的行表示构成一个数组

opcai:
 ? - linux
 ? - golang
 ? - python

也可以使用[]

opcai: [ linux , golang , python ]

数据里面也可以包含对象

opcai:
 ?  - linux: manjaro
 ?  - golang: gin
 ?  - python: django

Go处理 YAML



Go有开源的第三方库可以直接操作YAML

gopkg.in/yaml.v3

例如:

有配置文件是app.yaml

mysql:
  host: "127.0.0.1"
  port: 3306
  user: root
  passowrd: opcai
  db_name: opcai

Go读取例子

package main

import (
    "fmt"
    "io/ioutil"
?
    "log"
?
    "gopkg.in/yaml.v2"
)
?
type Config struct {
    MySQL MySQLConfig `yaml:"mysql"`
}
?
type MySQLConfig struct {
    Host ? ? string `yaml:"host"`
    Port ? ? int ? ?`yaml:"port"`
    User ? ? string `yaml:"user"`
    Password string `yaml:"password"`
    DBName ? string `yaml:"db_name"`
}
?
func main() {
    fileContent, err := ioutil.ReadFile("app.yaml")
    if err != nil {
        log.Panicln(err)
    }
    config := Config{}
    err = yaml.Unmarshal(fileContent, &config)
    if err != nil {
        log.Panicln(err)
    }
    fmt.Println(config.MySQL.Host, config.MySQL.Port, config.MySQL.User, config.MySQL.Password, config.MySQL.DBName)
}
?

总结

现在很多应用都是使用yaml作为配置文件,还是比较流行的。

相关推荐

联想电脑官网价格(联想电脑官网价格表)

这两个价格都比较高,官网标的指导价,实体店运行成本高,都是联想的代理商,非联想自营。建议先去实体店体验,再在主流电商参考价格。联想官网入口是:http://www.lenovo.com.cn/  联...

复制到u盘的文件不见了(复制在u盘的内容不见了怎么回事)

U盘里的文件如果不见了,可以先检查一下自己的电脑是不是中毒了。检查的方法很简单,直接进行扫描就行了,如果有病毒一般会显示出来的,进行查杀,查杀完了之后进行重启电脑,然后再读取U盘,一般文件就会显示出...

qq对战平台官方版(qq对战平台什么时候开放)

在我的电脑文件夹里面先打开War进游戏,然后退出,再用腾讯对战平台打开就可以打开了,不用谢我啦,祝各位玩的愉快啦,睡觉去了~~~~~~~~顺便说下,我的ID是九尾人柱力,玩的可以加我首先安装IPX协...

tp link路由器手机设置教程(tp-link路由手机设置)
  • tp link路由器手机设置教程(tp-link路由手机设置)
  • tp link路由器手机设置教程(tp-link路由手机设置)
  • tp link路由器手机设置教程(tp-link路由手机设置)
  • tp link路由器手机设置教程(tp-link路由手机设置)
破解qq空间(破解qq空间访问权限的软件)

空间设置了访问权限,所以不是好友,或是不知道问题密码的人,是进不去的!没有可以强行进入的方法,因为涉及他人隐私问题,除非本人对你开放。一般限制访问QQ空间访问权限会有三种情况:1、仅自己。2、QQ...

手机怎么把qq空间关了(手机qq空间怎么关掉)
  • 手机怎么把qq空间关了(手机qq空间怎么关掉)
  • 手机怎么把qq空间关了(手机qq空间怎么关掉)
  • 手机怎么把qq空间关了(手机qq空间怎么关掉)
  • 手机怎么把qq空间关了(手机qq空间怎么关掉)
联想win7原版(联想正版win7原版)

要还原联想笔记本自带的Win7系统,首先需要进入电脑的BIOS界面,将启动项设置为光驱或U盘。然后将联想笔记本自带的恢复盘或安装盘插入电脑,并重启电脑。接着按照提示进行操作,选择还原系统选项,等待系统...

bonjour软件有用吗(bonbon是啥软件)

1.bonjour软件是苹果公司在其开发的操作系统MacOSX10.2版本之后引入的服务器搜索协议所使用的一个商标名。2.安装了类似的itunes的软件以后,电脑上就会出现Bonjour软件...

笔记本电脑开机蓝屏无字(笔记本屏幕蓝屏什么字也没有)

初步怀疑是电脑温度过高导致的问题。出现蓝屏毛病的原因很多:1、电脑蓝屏是由于病毒破坏系统文件,导致系统故障进而出现蓝屏。2、电脑超频过度引起电脑蓝屏,这也可能涉及到下面的温度过高引起的蓝屏。3、内存条...

文件格式转换器免费版(文件格式转换器免费版下载安装)

一般来说,使用全能格式转换器转换文件的步骤大致如下:1.打开全能格式转换器,并点击“添加文件”按钮,选择您要转换的文件。2.在“输出格式”选项中,选择您想要将文件转换成的格式。3.如果需要,您可...

口碑最好的随身wifi品牌(随身wifi十大排名)

哪个牌子最好用性价比最高一目了然!格行设备价格:69/99/109/139/168(性价比高)芯片:进口马维尔芯片套餐:双网设备,套餐价格一致,随用随充续航:3000毫安18小时左右 33...

新买的台式电脑没声音(新买的台式机没有声音)

解决方法如下:1、查看主板的声卡驱动装没装上。2、驱动装好了,在右下角的小喇叭有没有,如果有,鼠标放在上面,右击就会看到声音的各种设置,如果没看到小喇叭,进入设备管理器看一下声音的硬件上是否有黄色标记...

dlink路由器设置密码步骤(dlink路由器设置教程)
  • dlink路由器设置密码步骤(dlink路由器设置教程)
  • dlink路由器设置密码步骤(dlink路由器设置教程)
  • dlink路由器设置密码步骤(dlink路由器设置教程)
  • dlink路由器设置密码步骤(dlink路由器设置教程)
三星笔记本u盘启动快捷键(三星笔记本u盘启动设置)

开机出现“SAMSUNG”画面时按F2进入BIOS设置,找到【Advanced】选项下,将快速启动“FastBIOSMode”项选为“Off”2.按F10键保存退出并重启,插入U盘,再次按F2键进入B...

普联无线路由器设置(普联路由器上网设置)

关于这个问题,以下是普联无线路由器的设置步骤:1.首先,将您的普联无线路由器与电脑或笔记本电脑连接。2.打开您的浏览器,输入路由器的IP地址(通常为192.168.1.1或192.168...