yaml 数组_YAML配置文件简介及使用

2023-11-11

cf3d9ee1be2075af57fe0bea493379eb.gif

简介

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

7823b04b81f4cca37d824c5c8ff8c9a5.png

语法

  • 内容是大小写敏感

  • 使用缩进表示层级关系(有点像Python缩进)

  • 缩进只允许空格,不能使用tab代替

  • 缩进的空格数不重要,只要相同层级的元素左对齐即可

  • 注释使用"#"

  • key后面冒号要加一个空格

ff2c0d0dc74ba5436c35026e2533bff3.png

数据类型

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

b3b78c3a3e3e995ee9ec766a6e26942e.png

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作为配置文件,还是比较流行的。

图片和内容源自网络分享,若有侵权,请联系删除!

上海艾磊科技有限公司专门为企业提供IT咨询,IT外包,系统集成,以及各类IT增值服务。其中增值服务包括OFFICE 365云服务,鼎捷企业ERP管理软件,云备份,企业邮箱,无线覆盖,上网行为管理,VPN架设,网络安全服务,INTERNET接入,设备租赁, IP电话服务

3bbf8923094c5b07d8a8f094d845e100.png

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

yaml 数组_YAML配置文件简介及使用 的相关文章

  • 复现旧版STGCN GPU版 (win10+openpose1.5.0)

    参考 下载stgcn先放着 gitbub上fork后导入到gitee快些 https gitee com chenhongqiong st gcn git 也可以直接下载zip文件后解压 一 准备 官方要求 1 openpose1 5 0
  • 原生JS获取和设置指定属性

    获取和设置属性 getAttribute object getAttribute attribute 注 getAttribute方法不属于document对象 它只能通过元素节点对象调用 setAttribute object setAt
  • 通过proc文件系统,查看进程资源消耗

    1 查看内存消耗 cat proc pid status grep VmSize 返回虚拟内存使用 和使用top命令查看的数值一样 2 查看cpu消耗 cat proc pid stat 下面是前面部分数据 6061 a out R 577
  • BES 平台 SDK之提示音的添加

    本文章是基于BES2700 芯片 其他BESxxx 芯片可做参考 如有不当之处 欢迎评论区留言指出 仅供参考学习用 BES 平台 SDK之按键的配置 谢文浩的博客 CSDN博客 关于系统按键简介可参考上一篇文章 链接如上所示 一 提示音的制
  • Python 10大可视化工具 (附详细教程)

    今天分享10个适用于多个学科的Python数据可视化库 其中有名气很大的也有鲜为人知的 1 matplotlib 保姆级教程 Matplotlib 两个直方图 matplotlib 是Python可视化程序库的泰斗 经过十几年它任然是Pyt
  • 计算软件测试数据流图独立路径,软件测试技术(2)

    最小值 其中k i 期望结果 基于k的正确平均值和总数 路径5测试用例 value i 有效输入 其中i 100 value k 最大值 其中k i 期望结果 基于k的正确平均值和总数 路径6测试用例 value i 有效输入 其中i 10
  • Basic Level 1005 继续(3n+1)猜想 (25分)

    题目 卡拉兹 Callatz 猜想已经在1001中给出了描述 在这个题目里 情况稍微有些复杂 当我们验证卡拉兹猜想的时候 为了避免重复计算 可以记录下递推过程中遇到的每一个数 例如对 n 3 进行验证的时候 我们需要计算 3 5 8 4 2
  • 50家大厂面试万字精华总结,和快手大牛的技术面谈,进阶学习资料!

    前言 MySQL 是最流行的关系型数据库管理系统 RDBMS 之一 MySQL作为一个关系型数据库管理系统 因为其速度 可靠性和适应性而备受关注 大多数人都认为在不需要事务化处理的情况下 MySQL是管理内容最好的选择 虽然功能未必很强大
  • Flutter(一)介绍、Dart语言简介

    目录 Flutter介绍 跨平台技术简介 1 跨平台自绘引擎 2 高性能 Flutter 为什么选择 Dart 语言 1 开发效率高 2 高性能 3 快速内存分配 4 类型安全和空安全 5 Dart 团队就在你身边 Flutter框架结构
  • VS2010编译静态链接MFC的OCX遇到的问题:nafxcwd.lib(dllmodul.obj) : error LNK2005: _DllMain@12 已经在 LIBCMTD.lib(dllm

    打开工程属性页 配置属性 gt 链接器 gt 输入 忽略特定默认库添加 LIBCMTD lib nafxcwd lib 附加依赖项添加 nafxcwd lib LIBCMTD lib 目的是调整依赖库链接顺序 其他类似的问题也可以这样解决
  • 信息安全专业好不好?

    信息安全在我国起步比较晚 国外都已经很普遍了 所以如果现在学习信息安全还可以抓到一波红利 就像很多年前的JAVA一样 而且现在国家很重视安全 很多有利政策 总之安全这块还是可以尽早加入 有前途 初入计算机行业的人或者大学计算机相关专业毕业生
  • dc-7 靶机渗透学习

    信息收集 扫描当前网段 nmap sP 192 168 202 0 24 查看开启的端口服务 nmap A p v 192 168 202 146 访问靶机的80端口 通过Wappalyzer识别出是Drupal 8 先看一下靶机的说明 不
  • 生成6位随机数字字符串的方式

    生成6位随机数字字符串的方式 方法一 方法二 今天在工作中使用到了随机生成6位数字字符串的方式 方法一 一种比较low的使用方法 使用字符串进行拼接 循环6次 话不多说上代码 内联代码片 方法一 字符串拼接随机生成6位随机数 String
  • 联邦学习的过程

    联邦学习的过程分为自治和联合两部分 自治的部分 首先 两个或两个以上的的参与方们在各自终端安装初始化的模型 每个参与方拥有相同的模型 之后参与方们可以使用当地的数据训练模型 由于参与方们拥有不同的数据 最终终端所训练的模型也拥有不同的模型参
  • private static final long serialVersionUID = 1L 的作用

    1 这句话的意思是定义程序序列化ID 2 什么是序列化 Serializable Java的一个接口 用来完成java的序列化和反序列化操作的 任何类型只要实现了Serializable接口 就可以被保存到文件中 或者作为数据流通过网络发送
  • 小程序视频播放组件《video》

    今天花了不少时间实现了在同一个页面上实现多个视频播放的功能 显示在同一个页面 可以上下拉动 效果如下图显示 具体代码如下 video wxml
  • Spring Boot项目中集成Apollo

    要在Spring Boot项目中集成Apollo 你可以按照以下步骤进行操作 步骤1 添加Apollo依赖 在你的Spring Boot项目的pom xml文件中添加Apollo依赖
  • 基于SpringBoot的校园疫情防控系统设计与实现

    1 概述 校园疫情防控系统的开发运用java技术 springboot框架 MIS的总体思想 以及Mysql等技术的支持下共同完成了该系统的开发 实现了校园疫情防控管理的信息化 使用户体验到校园疫情防控管理 管理员管理操作将更加方便 实现目

随机推荐

  • K8S-5--云原生基础/k8s基础及组件/二进制部署k8s集群

    一 云原生基础 CNCF 云原生容器生态系统概要 http dockone io article 3006 13年 docker项目正式发布 14年 kubernetes项目正式发布 15年 Google Redhat微软牵头成立CNCF
  • Linux route详解

    route命令用于显示和操作IP路由表 要实现两个不同的子网之间的通信 需要一台连接两个网络的路由器 或者同时位于两个网络的网关来实现 在Linux系统中 设置路由通常是 为了解决以下问题 该Linux系统在一个局域网中 局域网中有一个网关
  • 当用户在浏览器上输入url后发生了什么

    进行DNS域名解析 进行tcp连接 发起三次握手 发送一个http请求 服务器处理相关的请求 并且返回对应的结果 关闭tcp连接 浏览器将浏览器处理后的结果进行解析 浏览器将解析后的资源进行请求 并且渲染页面
  • 【翻译】为什么你现在比以往更需要混沌工程?

    大约一年前 像餐馆和杂货店这样的实体店正争先恐后地设置送货和路边取货 他们中的很多人都在生产中使用混乱工程 在推出新功能和服务之前迅速寻找失败的原因 教育平台也是如此 在短短一周的时间里 从 好的 变成了 绝对必要 企业混沌工程平台 Gre
  • Android UI设计 屏幕底部的菜单栏 动画切换Activity

    最终效果如下图 点击菜单会切换Activity 有动画效果 从早上起床就研究这个东西 因为之前一直都直接用系统提供的几个控件 从来没搞过图片背景 嵌套布局什么的 今天是第一次 没什么经验 花了一个上午才搞定 简单介绍一下思路 使用Linea
  • std::enable_shared_from_this的原理及意义

    原文 https www cnblogs com lehoho p 9372195 html 和 https www jianshu com p 4444923d79bd enable shared from this是一个模板类 定义于头
  • 【实战练习】汽油辛烷值优化建模(二)(问题一的详细讲解)

    1 问题回顾 问题1为数据处理 需参考近4年的工业数据 见附件一 325个数据样本数据 xlsx 的预处理结果 依 样本确定方法 附件二 对285号和313号数据样本进行预处理 原始数据见附件三 285号和313号样本原始数据 xlsx 并
  • Python3学习笔记(一) 基本数据类型(1)

    首先 Python3的变量不需要声明 曾经说的C语言的变量需要提前声明的好处现在也不是什么好处了 但是变量必须被赋值 赋值之后变量才会被创建 变量没有类型 直接写出来她的名字 里面装的什么内容 就好了 自然而然她就会有一个数据类型 由这里面
  • Java创建多线程的五种写法

    目录 一 lambda表达式 强烈推荐 最简单 基础格式 举例 运行结果 二 继承 Thread 重写 run 基础格式 举例 运行结果 三 实现 Runnable 重写 run 基础格式 举例 运行结果 四 使用匿名内部类 继承 Thre
  • 【华为OD机试python】不开心的小朋友【2023 B卷

    华为OD机试 真题 点这里 华为OD机试 真题考点分类 点这里 题目描述 游乐场里增加了一批摇摇车 非常受小朋友欢迎 但是每辆摇摇车同时只能有一个小朋友使用 如果没有空余的摇摇车 需要排队等候 或者直接离开 最后没有玩上的小朋友会非常不开心
  • C++实验03(03)组合类:Triangle类与Point类

    题目描述 定义一个平面坐标系下的点类Point 有整型数据成员x y坐标值 成员函数包括 1 带默认值的构造函数 默认值均为0 2 拷贝构造函数 3 置x y坐标值 4 取x y的坐标值 参数为两个整型量的引用 分别用于获取x y坐标值 5
  • 深入剖析Kubernetes之容器网络(一)

    文章目录 单机容器网络 容器跨主机网络 Kubernetes网络模型与CNI网络插件 单机容器网络 一个 Network Namespace 的网络栈包括 网卡 Network Interface 回环设备 Loopback Device
  • flink集群与资源@k8s源码分析-资源III 声明式资源管理

    1 资源 资源分析分3部分 资源请求 资源提供 声明式资源管理 本文是第三部分声明式资源管理 2 检查资源需求 检查资源声明 检查资源需求 检查资源声明是flink声明式资源管理的核心方法 上面的资源场景分为两类 提出资源需求和提供资源 检
  • LeetCode题目(Python实现):判断子序列

    文章目录 题目 想法一 遍历 t 算法实现 执行结果 复杂度分析 想法二 遍历 s 算法实现 执行结果 迭代器和生成器 算法实现 执行结果 利用 find 算法实现 执行结果 小结 题目 给定字符串 s 和 t 判断 s 是否为 t 的子序
  • VSCode学习【6】:vscode 文件目录缩进太小,目录树不明显

    1 打开Visual Studio Code 2 定位 英文版 File gt Preformences gt Settings 中文版 文件 gt 首选项 gt 设置 3 搜索 workbench gt tree
  • Vue实例选项之【data】

    data 通过 Vue 实例的 data 选项 可以声明应用内需要双向绑定的数据 建议所有会用到的数据都预先在 data 内声明 这样不至于将数据散落在业务逻辑中 难以维护 div div
  • 祝贺姜宁连任 2023 Apache 软件基金会董事暨 ASF 全球成员大会之我见我闻

    开源社引言 3 月 10 日凌晨 4 点钟 牙签撑开血丝眼球 我连续第 5 年爆肝参加了 ASF 年度全球成员大会 IRC 在线 全文字无语音或视频 当凌晨 4 30 唱名 2023 年 ASF 董事当选名单时 我兴奋地截屏下来 如下 因为
  • 总结 : 毕设采访原文呈现

    优秀毕业生采访问答记录 1 学姐 学长 能否讲讲你大学的生活状态 趣事与感受 2 关于考研有什么感受 3 能否谈谈对本专业的看法 4 学习方法 成功秘诀 5 学姐 学长 是否参加过竞赛 如果有能否和我们分享一下当时参加的想法 目的 收获等等
  • 开源的JAVA(SWT)仿visual studio GUI设计器

    JAVA SWT 仿visual studio GUI设计器 背景介绍 作者从事 JAVA SWT桌面应用开发多年 深感JAVA 开发的 GUI代码的繁锁与重复 于是想改进JAVA图行界面设计器 windowbuilder pro 在上面加
  • yaml 数组_YAML配置文件简介及使用

    简介 YAML 是 YAML Ain t a Markup Language YAML 不是一种标记语言 的缩写 相比JSON格式的方便 语法 内容是大小写敏感 使用缩进表示层级关系 有点像Python缩进 缩进只允许空格 不能使用tab代