大部分开发者都不知道的6个Yaml 特性


大部分开发者都不知道的6个Yaml 特性

1、等价写法

yaml虽然对格式严格要求,但支持多种写法,譬如下面数组和map 的写法。

list_by_dash:
  - foo
  - bar
list_by_square_bracets: [foo, bar]
map_by_indentation:
  foo: bar
  bar: baz
map_by_curly_braces: {foo: bar, bar: baz}
string_no_quotes: Monty Python
string_double_quotes: "Monty Python"
string_single_quotes: 'Monty Python'

2、长字符串

通过大于号后面追加一个长字符串

disclaimer: >
    Lorem ipsum dolor sit amet, consectetur adipiscing elit.
    In nec urna pellentesque, imperdiet urna vitae, hendrerit
    odio. Donec porta aliquet laoreet. Sed viverra tempus fringilla.

3、多行字符串

但如果你想写一个带换行的多行字符串,使用 | 。

mail_signature: |
      Martin Thoma
      Tel. +49 123 4567

4、变量

email: &emailAddress "info@example.de"
id: *emailAddress

第一行通过& 定义变量,在第二行可以使用 *emailAddress 引用这个变量。

5、类型转换

我们可以定义通用的类型

price: !!float 42
id: !!str 42

还可以定义特点编程语言支持的类型

tuple_example: !!python/tuple
  - 1337
  - 42
set_example: !!set {1337, 42}
date_example: !!timestamp 2020-12-31

定义Python的元组和set 以及 时间戳,然后我们就可以通过下面的Python代码解析这个yaml,直接转换为Python对象。

import yaml
import pprint
with open("example.yaml") as fp:
    data = fp.read()
pp = pprint.PrettyPrinter(indent=4)
pased = yaml.unsafe_load(data)
pp.pprint(pased)

6、多yaml分割

foo: bar
---
fizz: buzz

这个可能比较场景,我们在k8s 里面经常将deployment和sevice 放到同一个yaml文件中。

展开阅读全文

页面更新:2024-03-14

标签:数组   写法   开发者   字符串   变量   场景   特性   多种   定义   对象   类型   代码   格式   文件   时间   科技

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top