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
