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