Para los que conocen json hablar de YAML sería bastante de gusto, pero para quien recién conoce el formato o lo vio utilizando alguna herramienta como docker, quise hacer esta entrada como una Introducción a YAML para tener de ayuda memoria para mi y por que tal vez, como siempre, le sirva a otros tanto como a mi. Sin más los dejo con YAML y como escribir un archivo con estas caracteristicas.

Por el principio deberiamos saber que significa YAML y viendo la wiki encontramos que es un acronimo YAML Ain’t Markup Language (en castellano, ‘YAML no es un lenguaje de marcado’).

Se supone que YAML es más sencillo de escribir y más legible sobre otros como pueden ser JSON y XML que son muy utilizados. Si queremos podemos visitar su web https://yaml.org/

La extensión de archivo para archivos YAML es .yaml or .yml

Vamos con algunos ejemplos que nos van a ser utiles para conocer YAML

Números

Los números se expresan como se expresan, o sea, sin vueltas, sin comillas ni nada.

Número Entero: 123456

Número Real: 3.456654345689

Número Infinito: .inf

Número Negativo Infinito: -.inf

Número Exadecimal: Ox1af

Número Exponencial: 2.718e+10

Algo nuevo la verdad aun no se para que es el uso por que no lo utilice es el nan:

Nan = Not A Number = No es un numero y se representa: .NAN

Valores Booleanos

La forma es re sencilla aceptando true y false pero tambien:

yes y no
True y False
TRUE y FALSE

Valor NULO

El mismo se puede identificar como null o como ~

Valores con Fechas:

El formato fecha puede ser largo o corto siendo estos:

2021-02-08T11:10:00
2021-02-08

Strings o Cadenas de Caracteres

Se pueden utilizar con comillas simples o dobles. Aunque en algunos casos también las puedes encontrar sin comillas. En este último caso tienes que tener en cuenta que al parsear el texto se eliminarán espacios del inicio y el final, siempre que no esté entrecomillado. Por supuesto, en caso de que el texto contenga comillas tendrás que ponerlo entrecomillado, y en el caso de que utilices comillas simples, y el texto contenga comillas simple, tendrás que escaparla con otra.

Por otro lado, las comillas dobles, habitualmente se utiliza para expresar cadenas de texto arbitrarias, y se utiliza \ para escapar caracteres.

Cuando una cadena de texto contiene saltos de línea, es posible utilizar texto sin comillas utilizando para ello el símbolo |

definicion: |
             esto es un texto
             con saltos de línea
definicion: >
              esto es un texto largo
              que luego se tratará como una única línea.

Uso de Listas

Re sencillo como hacer una lista en la vida real:

- primero
- segundo
- tercero

Aunque también se pueden definir de esta otra forma:

[primero,segundo,tercero]

Uso de Diccionarios

Un diccionario es un conjunto de elementos clave-valor. Para indicar cada elemento separas la clave del valor mediante dos puntos y un espacio (esto se va asemejando más a los archivos que venimos armando con docker)

- Servicio1:
    nombre: ConexionLan
    tipo: Cableada
- Servicio2:
    nombre: ConexionWifi
    tipo: Inalambrica

IMPORTANTE:

la sangría la tenemos que hacer con espacios y nunca con tabulaciones. De hecho, lo mas habitual es realizar la sangría con dos espacios.

Uso de Comentarios

Comentar es muy simple solo agregamos el numeral adelante de la linea. Utilizando el ejemplo anterior veremos como agregar un comentario:

#Esto es mi comentario respecto a los servicios
- Servicio1:
    nombre: ConexionLan
    tipo: Cableada
- Servicio2:
    nombre: ConexionWifi
    tipo: Inalambrica

Si te gusta python podemos trabajar con yaml utilizando pyyaml por lo cual instalaremos:

pip install pyyaml

Vamos a crear dentro de un directorio que se llame aprendiendoYaml un archivo llamado pruebas.py y en su contenido:

import yaml

yaml_file = open("aprendiendo.yaml", 'r')
yaml_content = yaml.load(yaml_file)

print("Key: Value")
for key, value in yaml_content.items():
    print(f"{key}: {value}")

En el mismo directorio vamos a crear un archivo llamado aprendiendo.yaml y en su interior:

integer: 123
float: 123.123
exponential_float: 1.34e+3
integer: 123
octal: 0123
hexa: 0x123

Luego guardamos los cambios y veremos con un archivo de python puede leer un yaml y en su salida mostrarnos como quedarian los valores para python

yaml y python
Leyendo un yaml con python

Conjuntos

YAML admite otro tipo de datos llamado set. El conjunto contiene valores únicos similares al tipo de datos de conjunto de Python. Los elementos del conjunto están precedidos por signo de interrogación (?) como elementos de la lista precedidos por guiones (-). Debemos mencionar que el tipo de datos se establece usando !!conjunto después del nombre del conjunto:

Esto es un set: !!set
  ? 1
  ? 2
  ? 2
  ? 3

Si te animas podes agregar este set al archivo .yaml que creamos y volvemos a realizar la prueba de lectura del .yaml con el .py

set de datos

Otra opcion de yaml que puede o no ser util es la de usar contenido duplicado:

#Vamos a ducplicar el siguiente contenido configurado con el &
data: &duplicate_data Este contenido es el duplicado

# Usamos el dato a duplicar en vez de & pondremos *
duplicate_data: *duplicate_data Este contenido es el duplicado

Espero que esta entrada que denomine Introducción a YAML les haya servido como a mi!!! gracias como siempre por pasar!!

Por ahi te gusta alguna de estas entradas…. date una vuelta!

Print Friendly, PDF & Email
Share:

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *