Примеры yaml в Python
YAML — это текстовый формат формат разметки. Для загрузки файлов YAML в Python используется модуль PyYAMLopen in new window. Ниже несколько примеров преобразования структур YAML в структуры Python.
Файлы YAML взяты из спецификацииopen in new window.
Примеры
Код для загрузки файлов YAML:
import yaml
config = yaml.load(open('config.yaml'), Loader=yaml.Loader)
print(config)
1
2
3
4
5
2
3
4
5
Список
- Mark McGwire
- Sammy Sosa
- Ken Griffey
1
2
3
2
3
['Mark McGwire', 'Sammy Sosa', 'Ken Griffey']
1
Словарь
hr: 65 # Home runs
avg: 0.278 # Batting average
rbi: 147 # Runs Batted In
1
2
3
2
3
{'hr': 65, 'avg': 0.278, 'rbi': 147}
1
Словарь списков
american:
- Boston Red Sox
- Detroit Tigers
- New York Yankees
national:
- New York Mets
- Chicago Cubs
- Atlanta Braves
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
{'american': ['Boston Red Sox', 'Detroit Tigers', 'New York Yankees'],
'national': ['New York Mets', 'Chicago Cubs', 'Atlanta Braves']}
1
2
2
Список словарей
-
name: Mark McGwire
hr: 65
avg: 0.278
-
name: Sammy Sosa
hr: 63
avg: 0.288
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
[{'name': 'Mark McGwire', 'hr': 65, 'avg': 0.278},
{'name': 'Sammy Sosa', 'hr': 63, 'avg': 0.288}]
1
2
2
Список списков
- [name , hr, avg ]
- [Mark McGwire, 65, 0.278]
- [Sammy Sosa , 63, 0.288]
1
2
3
2
3
[['name', 'hr', 'avg'],
['Mark McGwire', 65, 0.278],
['Sammy Sosa', 63, 0.288]]
1
2
3
2
3
Словарь словарей
Mark McGwire: {hr: 65, avg: 0.278}
Sammy Sosa: {
hr: 63,
avg: 0.288
}
1
2
3
4
5
2
3
4
5
{'Mark McGwire': {'hr': 65, 'avg': 0.278},
'Sammy Sosa': {'hr': 63, 'avg': 0.288}}
1
2
2
Несколько документов в одном файле
# Ranking of 1998 home runs
---
- Mark McGwire
- Sammy Sosa
- Ken Griffey
# Team ranking
---
- Chicago Cubs
- St Louis Cardinals
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
config = yaml.load_all(open('config.yaml'), Loader=yaml.Loader)
for item in config:
print(item)
# ['Mark McGwire', 'Sammy Sosa', 'Ken Griffey']
# ['Chicago Cubs', 'St Louis Cardinals']
1
2
3
4
5
6
7
2
3
4
5
6
7