How to Represent a Dictionary (Map) in YAML

In YAML (YAML Ain't Markup Language), a dictionary, also known as a map, is a collection of key-value pairs. Each key is unique and is associated with a value, which can be a string, number, list, or even another dictionary. The syntax for representing a dictionary in YAML is straightforward and emphasizes readability.

Basic Syntax for a Dictionary

The basic syntax for defining a dictionary in YAML involves using a key followed by a colon (:) and a space, followed by the value. Each key-value pair is placed on a new line, and indentation is used to represent nested dictionaries.

Example of a Simple Dictionary

Here is a simple example of a dictionary representing a person's details:

        
person:
name: John Doe
age: 30
email: john.doe@example.com

In this example:

  • person is the key representing the dictionary.
  • It contains three key-value pairs: name, age, and email.

Nested Dictionaries

YAML allows for the creation of nested dictionaries, where a value can itself be another dictionary. This is useful for representing more complex data structures. Here’s an example:

        
company:
name: TechCorp
location: Anytown
employees:
- name: Alice
position: Developer
- name: Bob
position: Manager

In this example:

  • company is the key representing the outer dictionary.
  • It contains three key-value pairs: name, location, and employees.
  • employees is a list of dictionaries, each representing an employee with their name and position.

Dictionary with Mixed Data Types

A dictionary in YAML can also contain values of different data types, including strings, numbers, lists, and other dictionaries. Here’s an example:

        
settings:
debug: true
max_connections: 100
allowed_hosts:
- localhost
- example.com
database:
host: db.example.com
port: 5432

In this example:

  • settings is the key representing the dictionary.
  • It contains a boolean value (debug), a number (max_connections), a list (allowed_hosts), and another dictionary (database).

Important Points to Remember

  • Use a colon (:) followed by a space to separate keys from values.
  • Indentation is crucial for representing nested dictionaries and should be consistent (typically 2 spaces).
  • Keys must be unique within the same dictionary.

Conclusion

In summary, representing a dictionary (map) in YAML is simple and intuitive. By using key-value pairs and indentation, YAML allows for the clear organization of data, making it an excellent choice for configuration files and data serialization.