В своей последней статье я много говорил о формате JavaScript Object Notation (JSON) для обмена данными через Интернет. В этой статье я расскажу о другом популярном формате файлов для обмена и транспортировки данных — формате YAML. YAML — это рекурсивная аббревиатура, означающая, что Yaml не является языком разметки. Он используется для написания файлов конфигурации и широко используется в различных инструментах и приложениях DevOps.
YAML — это язык сериализации данных, что означает, что приложения, написанные с использованием разных технологий и языков с разными структурами, могут передавать данные друг другу, используя общий и стандартный формат, такой как XML и JSON. Расширение файла YAML — .yaml
и .yml
. Он удобен для чтения и интуитивно понятен.
Основы синтаксиса YAML
YAML аналогичен словарю Python, он написан в формате «ключ-значение», при этом отступы очень важны при написании файлов YAML. Основные типы данных в файле YAML: Strings
, int
, float
, boolean
, list
, dictionary
.
Струны
В YAML строки записываются с кавычками или без них. пример строковой точки данных в YAML:
Мы записали объект в файл YAML выше, каждая пара ключ-значение называется объектом. Ключи могут быть только строками, а значения могут быть любыми другими типами данных.
Мы также можем записывать строки в несколько строк с помощью скаляра литерального блока |
и скаляра сложенного блока >
, скаляр литерального блока включает в себя символ новой строки, а скаляр свернутого блока сворачивает символы новой строки в пробелы.
Числа
Числа в YAML могут быть целыми или плавающими, они выражаются десятичными дробями с учетом экспоненциальной записи. Ниже приведен пример объектов с числовыми типами:
Логическое и нулевое значение
Синтаксис YAML также имеет логический тип данных и нулевой тип, аналогичный типу None
в Python. Логический тип в YAML немного гибок: это true
, on
, yes
, который похож на True
в Python, а также false
, off
, no
, похожие на False
в Python.
Список
Тип данных списка в YAML записывается либо как массив с квадратной скобкой []
, либо с тире -
.
Словарь
Словарь в YAML также называется объектом. Они представлены в виде пары ключ-значение с отступами, что очень важно в синтаксисе YAML.
Оба контента, написанные в блоке кода, — это одно и то же.
Якоря и псевдонимы
Синтаксис YAML также имеет функцию, позволяющую пользователям сохранять контент в переменной с помощью привязки и псевдонима. Переменные сохраняются с символом амперсанда (&)
, а ссылки на них обозначаются символом звездочки (*)
.
Мы объявили массив со значением ключа item
и привязали его к переменной с именем item_anchor
. Затем мы ссылаемся на эту переменную в нашем объекте tool
в строке 3 файла.
Комментарии
Комментарии в YAML записываются с помощью хэштега (#)
, как и в Python.
Мы написали YAML-файл облачных провайдеров в блоке кода выше. Вы можете видеть, что мы начали код с комментария, показывающего, что представляет собой содержимое файла.
Чтобы завершить статью, мы поместим весь контент, который мы написали на данный момент, в файл main.yaml
и просмотрим его с помощью Python. Напишите содержимое, как показано ниже:
Затем давайте напишем сценарий Python для чтения файла main.yaml
как словаря Python.
Мы импортировали модуль Python yaml, а также модуль pprint, чтобы распечатать результаты в более читаемом формате. Затем мы читали наш файл main.yaml
и выводили его на экран. Результат, который мы получаем, показан ниже:
Мы можем увидеть выходные данные и то, как типы данных, которые мы обсуждали ранее, представлены в выходных данных.
Заключение
Мы подошли к концу статьи и серии о форматах файлов. Понимание формата файлов YAML и того, как читать и записывать файлы YAML, является преимуществом для людей, желающих углубиться в области инженерии данных, облачной разработки и DevOps в технологической сфере. В Интернете есть множество файлов, написанных на языке Yaml, вы можете изучить их, чтобы овладеть этим навыком.
Спасибо за чтение!