当前位置:网站首页>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 .
边栏推荐
- 国家正规的股票交易app有哪些?使用安不安全
- 使用枚举实现英文转盲文
- 解决使用uni-app MediaError MediaError ErrorCode -5
- 微服务远程Debug,Nocalhost + Rainbond微服务开发第二弹
- How to choose fund products? What fund is suitable to buy in July 2022?
- [concept of network principle]
- AADL inspector fault tree safety analysis module
- Default constraint and zero fill constraint of MySQL constraint
- Do you have to make money in the account to open an account? Is the fund safe?
- Deployment, recall and deletion solutions - stsadm and PowerShell "suggestions collection"
猜你喜欢
Usage of MySQL subquery keywords (exists)

Static analysis of software defects codesonar 5.2 release

Make this crmeb single merchant wechat mall system popular, so easy to use!

软件缺陷静态分析 CodeSonar 5.2 新版发布
Mysql子查询关键字的使用方式(exists)

Measure the height of the building

C语言 整型 和 浮点型 数据在内存中存储详解(内含原码反码补码,大小端存储等详解)

Don't fall behind! Simple and easy-to-use low code development to quickly build an intelligent management information system

Small guide for rapid formation of manipulator (11): standard nomenclature of coordinate system
MySQL约束之默认约束default与零填充约束zerofill
随机推荐
Lex & yacc of Pisa proxy SQL parsing
How to meet the dual needs of security and confidentiality of medical devices?
Helix QAC 2020.2 new static test tool maximizes the coverage of standard compliance
201215-03-19 - cocos2dx memory management - specific explanation "recommended collection"
Differences and connections between MinGW, mingw-w64, tdm-gcc and other tool chains "suggestions collection"
npm uninstall和rm直接删除的区别
Cocos2d-x game archive [easy to understand]
Static analysis of software defects codesonar 5.2 release
I have to use my ID card to open an account. Is the bank card safe? I don't understand it
Word inversion implements "suggestions collection"
HOJ 2245 浮游三角胞(数学啊 )
Contour layout of margin
数值法求解最优控制问题(〇)——定义
CodeSonar通过创新型静态分析增强软件可靠性
开户必须往账户里面赚钱吗,资金安全吗?
How to meet the dual needs of security and confidentiality of medical devices?
Numerical method for solving optimal control problem (0) -- Definition
The difference between NPM uninstall and RM direct deletion
Klocwork code static analysis tool
Codeforces round 275 (Div. 2) C – diverse permutation (construction) [easy to understand]