YAML文件入门
YAML文件入门
文章目录
- YAML文件入门
- 1. 基本YAML语法——数组list
- 2. 基本YAML语法——字典dict
- 3. 一个简单示例
YAML是"Yet Another Markup Language"的缩写,意为仍是一种标记语言,YAML和其他高级语言非常相似,可以用于表示简单的列表list、字典dict等形式,YAML使用空白符号缩进和大量依赖于外观的特色,非常适合于编写配置文件,另外YAML文件的后缀可以为.yml
或.yaml
。
1. 基本YAML语法——数组list
以-
开头的行表示构成一个数组,使用#
来表示注释
# record some languages
languagues:
- Ruby
- Python
- C++
- Java
将这个.yaml
文件读出的效果如下
{'languagues': ['Ruby', 'Python', 'C++', 'Java']}
2. 基本YAML语法——字典dict
YAML以:
来表示对象和其值,即key: value
,并且需要注意的是冒号后面需要存在一个空格,还可以使用缩进来表示层级关系
languagues:
Python: python.py
C++: c++.c
将这个.yaml
文件读出的效果如下
{'languagues': {'Python': 'python.py', 'C++': 'c++'}}
3. 一个简单示例
将这个YAML文件命名为runboob.yaml
#Comment: Student record
#Describes some characteristics and preferences
---
name: Martin D'vloper #key-value
age: 26
hobbies:
- painting #first list item
- playing_music #second list item
- cooking #third list item
programming_languages:
java: Intermediate
python: Advanced
javascript: Beginner
favorite_food:
- vegetables: tomatoes
- fruits:
citrics: oranges
tropical: bananas
nuts: peanuts
sweets: raisins
使用python读取后,效果如下
import os
from typing import Dict, Any
import yaml
with open(os.path.join('.', 'runboob.yaml'), 'r', encoding='utf-8') as file:
config: Dict[str, Any] = yaml.load(file, Loader=yaml.FullLoader)
print(config)
{'name': "Martin D'vloper",
'age': 26,
'hobbies': ['painting', 'playing_music', 'cooking'],
'programming_languages': {'java': 'Intermediate',
'python': 'Advanced',
'javascript': 'Beginner'},
'favorite_food': [{'vegetables': 'tomatoes'},
{'fruits': {'citrics': 'oranges',
'tropical': 'bananas',
'nuts': 'peanuts',
'sweets': 'raisins'}}]}