Author - Daniels Kenneth In category - Software development Publish time - 29 September 2022

YAML offers versatility in typing by auto-detecting data types while also supporting explicit typing options. To tag data as a certain type, simply include !! Together, these formatting specifications increase the readability of YAML files beyond XML and JSON. More recently, YAML has been used to create automation protocols that can execute a series of commands listed in a YAML file.

  • You enter nulls with a tilde or the unquoted null string literal.
  • As a data-representation format, YAML does not contain executables.
  • Sequences are data structures similar to a list or array that hold multiple values under the same key.
  • YAML is also easy to incorporate with existing technologies through the support of popular technologies like Python using PyYAML library, Docker, or Ansible.
  • It is similar to XML and JSON files but uses a more minimalist syntax even while maintaining similar capabilities.

It essentially allows you to provide powerful configuration settings, without having to learn a more complex code type like CSS, JavaScript, and PHP. For Ansible, nearly every YAML file starts with a list. Each item in the list is a list of key/value pairs, commonly called a “hash” or a “dictionary”. So, we need to know how to write lists and dictionaries in YAML. Every item in a YAML document is a member of at least one dictionary. The value is a scalar so that it can be any datatype. So, as we’ve already seen, the value can be a string, a number, or another dictionary.

Multiple documents

A scalar could be a boolean property, like true, integer such as 5, or a string of text, like a sentence or the title of your website. All the popular IDE supports the yaml file extension and also provide plugins to validate the yaml file content. Yaml files are created with extension .yaml or .yml. You can use any IDE or text editor to open this file.

What is YAML in Python?

YAML (YAML Ain't Markup Language) is a human-readable data-serialization language. It is commonly used for configuration files, but it is also used in data storage (e.g. debugging output) or transmission (e.g. document headers).

We’ll iterate through the outermost set of keys and values and print the key and the string representation of each value. You can find a processor for your favorite platform here. This sequence places each item in the list at the same level. If you want to create a nested sequence with items and sub-items, you can do so by placing a single space before each dash in the sub-items.

YAML Basic Rules

It also cuts much of the “noise” formatting found in JSON and XML files such as quotation marks, brackets, and braces. Use lowercase ‘true’ or ‘false’ for boolean values in dictionaries if you want to be compatible with default yamllint options. While resulting YAML can still be valid, this can be a source of many subtle parsing errors. Every element of the list is indented and starts with a dash and a space.

yaml tutorial

Parsed without the visual context of line breaks and indentation, the actual scope of your data looks a lot different. The data is mostly flat, almost devoid of hierarchy. There’s no indication that the sourdough loaf and bagels are children of the name of the store.


YAML format allows multiple documents to be embedded in a single file. They only have to be separated with a line containing triple-dash separator —. A document starts with three dashes and ends with three periods. Some YAML processors require the document start operator.

  • The opinions expressed on this website are those of each author, not of the author’s employer or of Red Hat.
  • They are the strings and numbers that make up the data on the page.
  • To close theStoreblock and open a new one, you must start a new mapping.
  • In most situations, you don’t have to specify them in quotes.
  • To save the last character, add a plus to the fold or block operators.
  • It’s often used as a format for configuration files, but its object serialization abilities make it a viable replacement for languages like JSON.
  • We covered dictionaries above, but there’s more to them.

It’s easy to think of YAML as just a list of related values, no more complex than a shopping list. The items below the heading relate directly to it, right? Well, you can test this theory by writing a little bit of valid YAML. Flow style allows you to write sequences inline using square brackets, similar to an array declaration in a programming language like Python or JavaScript. Flow style is more compact but harder to read at a glance. The pre-requisites of this tutorial include basic knowledge of HTML, XML and JSON. YAML was specifically created to work well for common use cases such as configuration files, log files and cross language sharing files and data sharing.

Salient Features of YAML

JSON and YAML have similar capabilities, and you can convert most documents between the formats. The opinions expressed on this website are those of each author, not of the author’s employer or of Red Hat. As you can see, this YAML directive contains one mapping to two child values , each of which is mapped to a child sequence. For more information about YAML, including detailed documentation about how it works, check out the resources linked below. Mapping gives you the ability to list keys with values. This is useful in cases where you are assigning a name or a property to a specific element. YAML files should end in .yaml whenever possible in Grav.

  • Every item in a YAML document is a member of at least one dictionary.
  • They’re helpful to divide data into logical categories for later use.
  • For more information about YAML, including detailed documentation about how it works, check out the resources linked below.
  • It’s usually good enough to enclose strings in quotes, leave numbers unquoted, and let the parser figure it out.
  • YAML is an indentation-based markup language which aims to be both easy to read and easy to write.

It is a basic list with each item in the list placed in its own line with an opening dash. When yaml data transfers between client and server, Implementation vendors add MIME type settings specified in requests and responses across the internet. Generally, we can use the MIME format type – text/yaml.

Leave a Reply

Your email address will not be published. Required fields are marked *