当前位置:网站首页>Goal: do not exclude yaml syntax. Try to get started quickly
Goal: do not exclude yaml syntax. Try to get started quickly
2022-07-07 21:18:00 【Look, the future】

Reading guide
The three years , except Makefile, I've never touched such a strange grammar . Of course Makefile I decided to give up , Because I can write CMake Hey .
You have to do it , Something to be used soon . Read through the grammar first , Not much anyway , Take it later Python Let's demonstrate that the world may feel clear ( Have to say ,Python What a good thing )
yaml ?
- Scripting language .
- For writing configuration files .
- The suffix is .yml.
- play docker、k8s There must be no escape from this .
yaml Basic grammar
- 1、 Case sensitive .
- 2、 Use indentation to indicate hierarchy , The number of spaces is not important , The same level can be consistent .
- 3、 Indenting is not allowed tab, Only spaces .
- 4、# Table annotation .
yaml data type
object : Set of key value pairs , Also known as mapping (mapping)/ Hash (hashes) / Dictionaries (dictionary)
Array : A set of values in order , Also called sequence (sequence) / list (list)
Pure quantity (scalars): A single 、 Nonseparable value
object
I can't bear it , We turn on python Editor for .
pip install pyyaml
Object key value pairs are represented by colons key: value, Add a space after the colon .
You can also use key:{key1: value1, key2: value2, …}.
You can also use indentation to represent hierarchical relationships ;
key:
child-key: value
child-key2: value2
We use it Python To transform :
import yaml
f = open("yaml1.yaml")
res = yaml.safe_load(f)
print(res)
/yaml_test/main.py
{
'key': {
'child-key': 'value', 'child-key2': 'value2'}}
Process finished with exit code 0
More complex object formats , You can use a question mark and a space to represent a complex key, A colon with a space represents a value:
?
- complexkey1
- complexkey2
:
- complexvalue1
- complexvalue2
This means that the property of an object is an array [complexkey1,complexkey2], The corresponding value is also an array [complexvalue1,complexvalue2]
( In the tutorial , however Python Can't be transformed , So I'm not sure . But it's also my first contact , So I can only put my words here .)
Array
With - The first row represents an array :
- A
- B
- C
/yaml_test/main.py
['A', 'B', 'C']
Process finished with exit code 0
YAML Support multidimensional array , You can use in line representation :
key: [value1, value2, …]
A child member of a data structure is an array , You can indent a space under the item .
-
- A
- B
- C
yaml_test/main.py
[['A', 'B', 'C']]
Process finished with exit code 0
A relatively complex example :
companies:
-
id: 1
name: company1
price: 200W
-
id: 2
name: company2
price: 500W
/yaml_test/main.py
{
'companies': [{
'id': 1, 'name': 'company1', 'price': '200W'}, {
'id': 2, 'name': 'company2', 'price': '500W'}]}
Process finished with exit code 0
intend companies Property is an array , Each array element is made up of id、name、price An object composed of three attributes .
Arrays can also use streaming (flow) How to express :
companies: [{
id: 1,name: company1,price: 200W},{
id: 2,name: company2,price: 500W}]
( Wouldn't it be nice to write that directly ? I'm shallow )
Composite structure
Arrays and objects can form a composite structure , example :
languages:
- Ruby
- Perl
- Python
websites:
YAML: yaml.org
Ruby: ruby-lang.org
Python: python.org
Perl: use.perl.org
Convert to json by :
I won't let this out , You can see for yourself .
Pure quantity
Pure quantity is the most basic , Nonseparable value , Include :
character string
Boolean value
Integers
Floating point numbers
Null
Time
date
Use an example to quickly understand the basic use of scalar :
boolean:
- TRUE #true,True Fine
- FALSE #false,False Fine
float:
- 3.14
- 6.8523015e+5 # You can use scientific counting
int:
- 123
- 0b1010_0111_0100_1010_1110 # Binary representation
null:
nodeName: 'null'
parent: ~ # Use ~ Express null
# It shows that None
string:
- ha-ha
- 'Hello world' # Special characters can be wrapped in double quotes or single quotes
- newline
newline2 # Strings can be split into multiple lines , Each line is converted to a space
yaml_test/main.py
{
'string': [' ha-ha ', 'Hello world', 'newline newline2']}
Process finished with exit code 0
date:
- 2018-02-17 # Date must use ISO 8601 Format , namely yyyy-MM-dd
datetime:
- 2018-02-17T15:02:31+08:00 # Time use ISO 8601 Format , Use... Between time and date T Connect , Finally using + Represents the time zone
yaml_test/main.py
{
'date': [datetime.date(2018, 2, 17)], 'datetime': [datetime.datetime(2018, 2, 17, 15, 2, 31, tzinfo=datetime.timezone(datetime.timedelta(seconds=28800)))]}
Process finished with exit code 0
quote
( This part is operated by me k8s I haven't met in this period of time )
& Anchor points and * Alias , Can be used to quote :
defaults: &defaults
adapter: postgres
host: localhost
development:
database: myapp_development
<<: *defaults
test:
database: myapp_test
<<: *defaults
amount to :
defaults:
adapter: postgres
host: localhost
development:
database: myapp_development
adapter: postgres
host: localhost
test:
database: myapp_test
adapter: postgres
host: localhost
yaml_test/main.py
{
'defaults': {
'adapter': 'postgres', 'host': 'localhost'}, 'development': {
'adapter': 'postgres', 'host': 'localhost', 'database': 'myapp_development'}, 'test': {
'adapter': 'postgres', 'host': 'localhost', 'database': 'myapp_test'}}
Process finished with exit code 0
& Used to build anchors (defaults),<< Represents merging into the current data ,* Used to reference anchor points .
Here's another example :
- &showell Steve
- Clark
- Brian
- Oren
- *showell
To Json The code is as follows :
[ 'Steve', 'Clark', 'Brian', 'Oren', 'Steve' ]
What about that ?:
-
- &showell Steve
-
- Clark
-
- Brian
-
- Oren
-
- *showell
Small tips:
If JSON Too long , You can make it .json Drag the file to Firefox to see .
边栏推荐
- 如何挑选基金产品?2022年7月份适合买什么基金?
- 反诈困境,国有大行如何破局?
- 恶魔奶爸 A0 英文零基础的自我提升路
- openGl超级宝典学习笔记 (1)第一个三角形「建议收藏」
- 【函数递归】简单递归的5个经典例子,你都会吗?
- awk处理JSON处理
- How does codesonar help UAVs find software defects?
- Devil daddy B1 hearing the last barrier, break through with all his strength
- 201215-03-19 - cocos2dx memory management - specific explanation "recommended collection"
- Small guide for rapid formation of manipulator (11): standard nomenclature of coordinate system
猜你喜欢

Using enumeration to realize English to braille

Solve the problem of using uni app mediaerror mediaerror errorcode -5

Problems encountered in installing mysql8 for Ubuntu and the detailed installation process

Codesonar Webinar

C语言多角度帮助你深入理解指针(1. 字符指针2. 数组指针和 指针数组 、数组传参和指针传参3. 函数指针4. 函数指针数组5. 指向函数指针数组的指针6. 回调函数)

Cantata9.0 | 全 新 功 能

使用高斯Redis实现二级索引

智能软件分析平台Embold

Static analysis of software defects codesonar 5.2 release

Measure the height of the building
随机推荐
写一下跳表
Unity3d 4.3.4f1执行项目
Jetty:配置连接器[通俗易懂]
恶魔奶爸 B3 少量泛读,完成两万词汇量+
HDU4876ZCC loves cards(多校题)
AADL inspector fault tree safety analysis module
Small guide for rapid formation of manipulator (11): standard nomenclature of coordinate system
npm uninstall和rm直接删除的区别
数值法求解最优控制问题(〇)——定义
I wrote a markdown command line gadget, hoping to improve the efficiency of sending documents by garden friends!
CodeSonar如何帮助无人机查找软件缺陷?
使用高斯Redis实现二级索引
HOJ 2245 浮游三角胞(数学啊 )
使用高斯Redis实现二级索引
gridView自己定义做时间排版「建议收藏」
Codeforces round 296 (Div. 2) A. playing with paper[easy to understand]
MinGW MinGW-w64 TDM-GCC等工具链之间的差别与联系「建议收藏」
How to choose fund products? What fund is suitable to buy in July 2022?
uva 12230 – Crossing Rivers(概率)「建议收藏」
写了个 Markdown 命令行小工具,希望能提高园友们发文的效率!