YAML Lists and Dictionaries Tutorial
Introduction to YAML
YAML (YAML Ain't Markup Language) is a human-readable data serialization standard that can be used in conjunction with all programming languages. It is commonly used for configuration files and in applications where data is being stored or transmitted.
YAML Basics
Before diving into lists and dictionaries, let's cover some basic syntax rules of YAML:
- YAML uses indentation to denote structure. Indentation is achieved using spaces (not tabs).
- YAML files use the .yamlor.ymlextension.
- Comments in YAML start with a #.
YAML Lists
Lists in YAML are simple collections of items. Each item in a list is prefixed with a hyphen (-).
- item1
- item2
- item3
                
            To create a list of dictionaries, each dictionary is an item in the list:
- name: John Doe
  age: 30
- name: Jane Doe
  age: 25
                
            YAML Dictionaries
Dictionaries (or mappings) in YAML are collections of key-value pairs. Each key-value pair is separated by a colon (:).
name: John Doe
age: 30
address:
  street: 123 Main St
  city: Anytown
                
            Dictionaries can also contain lists:
name: John Doe
age: 30
children:
  - name: Jimmy Doe
    age: 5
  - name: Jenny Doe
    age: 3
                
            Complex Structures
YAML allows for complex nested structures. Here is an example combining lists and dictionaries:
users:
  - name: John Doe
    age: 30
    contacts:
      email: john.doe@example.com
      phone: 123-456-7890
  - name: Jane Doe
    age: 25
    contacts:
      email: jane.doe@example.com
      phone: 098-765-4321
                
            YAML in Ansible
Ansible, a popular automation tool, uses YAML for its playbooks. Here is a simple example of an Ansible playbook using lists and dictionaries:
---
- name: Example Playbook
  hosts: all
  tasks:
    - name: Install a package
      apt:
        name: nginx
        state: present
    - name: Ensure a file is present
      copy:
        src: /path/to/source
        dest: /path/to/destination
                
            