yaml tutorial comprehensive guide yaml using python
Este tutorial de YAML explica qué es YAML, conceptos básicos de YAML como tipos de datos, validador de YAML, analizador, editor, archivos, etc.con la ayuda de ejemplos de código usando Python:
El procesamiento de texto en informática ayuda a los programadores a crear programas y aplicaciones configurables. Los lenguajes de marcado juegan un papel vital en el almacenamiento e intercambio de datos en un formato legible por humanos.
Además, los programadores utilizan lenguajes de marcado como formatos de intercambio de datos estándar y común entre diferentes sistemas. Algunos ejemplos de los lenguajes de marcado incluyen HTML, XML, XHTML y JSON.
Hemos compartido información sobre un lenguaje de marcado más en este tutorial de YAML fácil de seguir.
Este tutorial ayuda a los lectores a encontrar respuestas a las preguntas que se mencionan a continuación. Los alumnos pueden dar los primeros pasos y comprender el misterio de los lenguajes de marcado en general y YAML en particular.
Las preguntas incluyen:
- ¿Por qué necesitamos lenguajes de marcado?
- ¿Qué significa YAML?
- ¿Por qué se creó YAML?
- ¿Por qué necesitamos aprender YAML?
- ¿Por qué es importante hoy aprender YAML?
- ¿Qué tipo de datos puedo almacenar en un YAML?
Esta guía es útil para lectores experimentados también ya que discutimos conceptos en el contexto de la programación en general, y también en el contexto de las pruebas de software. También cubriremos temas como serialización y deserialización aquí.
Lo que vas a aprender:
¿Qué es YAML?
Los creadores de YAML inicialmente lo llamaron 'Otro lenguaje de marcado'. Sin embargo, con el tiempo, el acrónimo cambió a 'YAML Ain’t a MarkUp language'. YAML es un acrónimo que se refiere a sí mismo y se denomina acrónimo recursivo.
Podemos hacer uso de este lenguaje para almacenar datos y configuraciones en un formato legible por humanos. YAML es un idioma elemental para aprender. Sus construcciones también son fáciles de entender.
Clark, Ingy y Oren crearon YAML para abordar las complejidades de comprender otros lenguajes de marcado, que son difíciles de entender, y la curva de aprendizaje también es más empinada que aprender YAML.
Para que el aprendizaje sea más cómodo, como siempre, hacemos uso de un proyecto de muestra. Alojamos este proyecto en Github con licencia MIT para que cualquiera pueda realizar modificaciones y enviar una solicitud de extracción si es necesario.
Puede clonar el proyecto con el siguiente comando.
|_+_|Sin embargo, si es necesario, puede descargar el zip archivo para el código y los ejemplos.
Alternativamente, los lectores pueden clonar este proyecto con la ayuda de IntelliJ IDEA. Complete la sección sobre requisitos previos para instalar Python y configúrelo con IntelliJ IDEA antes de clonar el proyecto.

¿Por qué necesitamos lenguajes de marcado?
Es imposible escribir todo en código de software. Es porque necesitamos mantener el código de vez en cuando y necesitamos abstraer los detalles a archivos o bases de datos externos.
Es una buena práctica reducir el código al mínimo posible y crearlo de manera que no necesite modificaciones para las diversas entradas de datos que necesita.
Por ejemplo, podemos escribir una función para tomar datos de entrada de un archivo externo e imprimir su contenido línea por línea en lugar de escribir el código y los datos juntos en un solo archivo.
Se considera una mejor práctica porque separa las preocupaciones de crear los datos y crear el código. El enfoque de programación de abstraer los datos del código asegura un fácil mantenimiento.
Los lenguajes de marcado nos facilitan el almacenamiento de información jerárquica en un formato más accesible y ligero. Estos archivos se pueden intercambiar entre programas a través de Internet sin consumir mucho ancho de banda y son compatibles con los protocolos más comunes.
Estos idiomas siguen un estándar universal y admiten varias codificaciones para admitir caracteres de casi todos los idiomas hablados del mundo.
Lo mejor de los lenguajes de marcado es que su uso generalizado no está asociado a ningún comando del sistema, y esta característica los hace más seguros y es el motivo de su adopción generalizada y mundial. Por lo tanto, es posible que no encuentre ningún comando YAML que podamos ejecutar directamente para crear una salida.
Beneficios de usar un archivo YAML
YAML tiene muchos beneficios. La siguiente tabla muestra una comparación entre YAML y JSON. JSON son las siglas de JavaScript Object Notation, y lo usamos como formato de intercambio de datos.
| Atributo | YAML | JSON |
|---|---|---|
| Verbosidad | Menos detallado | Más detallado |
| Tipos de datos | Admite tipos de datos complejos. | No admite tipos de datos complejos. |
| Comentarios | Admite la escritura de comentarios usando '#'. | No admite la escritura de comentarios. |
| Legibilidad | Más legible por humanos. | Menos legible por humanos. |
| Autorreferencias | Admite elementos de referencia dentro de los mismos documentos mediante '&' y *. | No es compatible con la autorreferencia. |
| Varios documentos | Admite varios documentos en un solo archivo. | Admite un solo documento en un solo archivo. |
Debido a los beneficios de YAML sobre otros formatos de archivo como JSON, YAML es más frecuente entre los desarrolladores por su versatilidad y flexibilidad.
Prerrequisitos
Primero instalamos Python y luego configuramos Python y sus paquetes con IntelliJ IDEA. Por lo tanto, instale IntelliJ IDEA si aún no lo ha hecho antes de continuar.
Instalar Python
Siga estos pasos para instalar y configurar Python en Windows 10.
Paso 1
Descarga Python e instálelo seleccionando la configuración como se muestra en la imagen de abajo.

Paso 2
Inicie la instalación y seleccione personalizar la instalación. Seleccione la casilla de verificación de Agregar Python a PATH .

Paso 3
Personalice la ubicación de Python como se muestra en la imagen.

Paso 4
Siga adelante con la instalación. Al final del asistente de instalación, desactive el límite de rutas en Windows haciendo clic en la opción del asistente.

Ahora, la configuración de Python está completa.
Configurar Python con IntelliJ IDEA
Configuremos ahora IntelliJ IDEA con Python. El primer paso es instalar los complementos para poder trabajar en proyectos de Python.
Instalar complementos de Python
Instalar Python Community Edition

Instalar Python Security

Siga los pasos a continuación para completar la configuración.
Paso 1
Utilice el menú Archivo y vaya a la configuración de la plataforma. Clickea en el Botón Agregar SDK .

Paso 2
Selecciona el Opción de entorno virtual y seleccione el intérprete base de Python como el que se instaló en el paso anterior.

Paso 3
Ahora seleccione el entorno virtual creado en el paso anterior bajo el Configuración del SDK del proyecto .

Recomendamos un entorno virtual para un proyecto.
Paso 4 (opcional)
Abra el archivo config.py desde el explorador de proyectos y haga clic en instalar requisitos , como se muestra en la imagen de abajo.

Ignore el requisito de ipython si es necesario desmarcando una opción en el cuadro de diálogo Elegir paquete.

Ahora, puede dirigirse a la siguiente sección para aprender los conceptos básicos de YAML.
Conceptos básicos de YAML
En esta sección, mencionamos los conceptos básicos de YAML con la ayuda de un archivo de ejemplo llamado config.yml y config.py. Creemos firmemente que explicar los conceptos de YAML en paralelo con su uso en un lenguaje de programación mejora el aprendizaje.
Por lo tanto, mientras explicamos los conceptos básicos de YAML, también involucramos el uso de Python para leer y escribir los datos almacenados en YAML.
Ahora creemos o abramos config.yml en nuestros respectivos editores y comprendamos el YAML.
|_+_|Tenga en cuenta que los archivos YAML tienen.lyextensión. El idioma distingue entre mayúsculas y minúsculas. Usamos espacios y no tabulaciones para la sangría.
Junto con estos conceptos básicos, comprendamos los tipos de datos. En el YAML mencionado, hemos representado la información en un cuestionario. Un cuestionario se representa como un nodo de nivel raíz, que tiene atributos como una descripción, preguntas y respuestas.
Tipos de datos YAML
YAML puede almacenar escalares, secuencias y asignaciones. Hemos mostrado cómo escribir todos los tipos de datos necesarios en el archivo config.yml.
Los escalares son cadenas, enteros, flotantes y booleanos. Los datos de tipo Strings se encierran entre comillas dobles “. Sin embargo, YAML no impone la escritura de cadenas entre comillas dobles y podemos hacer uso de> o | para escribir cadenas largas en varias líneas.
Observe los distintos tipos de datos y valores asignados en la siguiente tabla.
| Tipo de datos | Ejemplos de tipos de datos en Config.yml |
|---|---|
| Cuerda Las cadenas se pueden almacenar con o sin comillas. | prueba: descripción:> Este cuestionario es para aprender YAML preguntas: - '¿Quién se encuentra más en la web?' respuestas: - gatos |
| Entero y flotante Los números enteros y flotantes se mencionan en su forma original | prueba: preguntas: - '¿Cuál es el valor de pi?' - '¿Cuántos miembros máximos pueden jugar TT?' respuestas: - 3.141592653589793 - 4 |
| Booleano Los booleanos se almacenan usando una cadena de verdadero / falso o sí / no | prueba: preguntas: - '¿Plutón está relacionado con las relaciones platónicas?' - '¿No sabes que el Universo está en constante expansión?' respuestas: - cierto - no |
| Secuencias Las secuencias se crean con la ayuda de corchetes (. | prueba: respuestas: - (8, 'plutón') |
| Referencias La autorreferencia se utiliza con la ayuda de & y * | # conversión de datos explícita y reutilización de bloques de datos extra: refer: & id011 # dar una referencia a los datos # Otros valores de nuevo: * id011 # llamar a los datos dando la referencia |
A continuación se enumeran algunos de los elementos adicionales dignos de mención de un archivo YAML.
Documento
Ahora observe los tres guiones -. Significa el inicio de un documento. Almacenamos el primer documento con una prueba como elemento raíz y la descripción, preguntas y respuestas como elementos secundarios con sus valores asociados.
Tipos de datos explícitos
Observe la clave de sección llamada extra en config.yml. Vemos que con la ayuda de dobles exclamaciones, podemos mencionar explícitamente los tipos de datos de los valores almacenados en el archivo. Convertimos un número entero en un flotante usando !! float. Usamos !! str para convertir un entero en una cadena, y usamos !! int para convertir una cadena en un entero.
El paquete YAML de Python nos ayuda a leer el archivo YAML y almacenarlo internamente como un diccionario. Python almacena las claves del diccionario como cadenas y convierte automáticamente los valores en tipos de datos de Python a menos que se indique explícitamente con “!!”.
Leer archivo YAML en Python
En general, utilizamos el editor YAML y un validador YAML al momento de escribir YAML. YAML Validator comprueba el archivo en el momento de escribir este artículo.
El paquete Python YAML tiene un analizador YAML incorporado, que analiza el archivo antes de almacenarlo en la memoria.
Ahora creemos y abramos config.py en nuestros respectivos editores con el contenido a continuación.
|_+_|Para probar que ha completado los pasos descritos anteriormente, ejecute config.py.
Abra el archivo config.py en IntelliJ IDEA, localice el bloque principal y ejecute el archivo usando el icono de reproducción.

Una vez que ejecutamos el archivo, vemos la consola con el resultado.

En la función read_yaml, abrimos el archivo config.yml y usamos el método safe_load del paquete YAML para leer la secuencia como un diccionario Python y luego devolver este diccionario usando la palabra clave return.
La variable my_config almacena el contenido del archivo config.yml como un diccionario. Usando el bonito paquete de impresión de Python llamado pprint, imprimimos el diccionario en la consola.
Observe la salida anterior. Todas las etiquetas YAML corresponden a los tipos de datos de Python para que el programa pueda utilizar esos valores más. Este proceso de construcción de objetos Python a partir de la entrada de texto se llama Deserialización.
Escribir archivo YAML en Python
Abra config.py y agregue las siguientes líneas de código justo debajo del método read_yaml y encima del bloque principal del archivo.
|_+_|En el método write_yaml, abrimos un archivo llamado toyaml.yml en modo de escritura y usamos el método de volcado de los paquetes YAML para escribir el documento YAML en el archivo.
Ahora agregue las siguientes líneas de código al final del archivo config.py
|_+_|Guarde config.py y ejecute el archivo usando el siguiente comando o usando el ícono de reproducción en el IDE.
|_+_|Vemos que el comando anterior imprime el contenido de config.yml en la consola o en la salida del sistema. El programa Python escribe el mismo contenido en otro archivo llamado toyaml.yml. El proceso de escribir el objeto Python en un archivo externo se llama serialización.
Varios documentos en YAML
YAML es bastante versátil y podemos almacenar varios documentos en un solo archivo YAML.
Cree una copia del archivo config.yml como configs.yml y pegue las siguientes líneas al final del archivo.
El enfoque principal de las pruebas de aceptación es|_+_|
Tres guiones: en el fragmento anterior, marca el comienzo de un nuevo documento en el mismo archivo. Uso de | después de la etiqueta de descripción nos permite escribir un texto de varias líneas de tipo cadena. Aquí, en el nuevo documento, hemos almacenado preguntas y respuestas como asignaciones separadas anidadas bajo preguntas.
Ahora cree un nuevo archivo llamado configs.py y pegue el código mencionado a continuación en el archivo.
|_+_|Observe los cambios en las funciones read_yaml y write_yaml. En read_yaml, usamos el método safe_load_all del paquete YAML para leer todos los documentos presentes en configs.yml como una lista. De manera similar, en write_yaml, usamos el método dump_all para escribir la lista de todos los documentos leídos previamente en un nuevo archivo llamado toyaml.yml.
Ahora ejecute configs.py.
|_+_|La salida del comando anterior se muestra a continuación.
|_+_|La salida es similar a la salida de un solo documento mencionada anteriormente. Python convierte todos los documentos de configs.yml en un diccionario de Python. Facilita el procesamiento y uso posteriores de los valores.
Preguntas frecuentes
Es posible que se encuentre con las siguientes preguntas mientras trabaja con YAML.
P # 1) ¿Es posible preservar el orden de las asignaciones YAML?
Responder: Sí, es posible personalizar el comportamiento predeterminado de los cargadores en el paquete pyYAML de Python. Implica el uso de OrderedDicts y anular el resolutor base con métodos personalizados, como se muestra Aquí .
P # 2) ¿Cómo almacenar una imagen en YAML?
Responder: Puede codificar una imagen en base64 y mantenerla en YAML, como se muestra a continuación.
|_+_|P # 3) ¿Cuál es la diferencia entre> y | etiquetas en YAML?
Responder: Ambos> y | permite escribir valores en varias líneas en YAML. Usamos un símbolo mayor que> para escribir cadenas de varias líneas y | para representar valores literales. Valores escritos con | no es necesario escapar. Por ejemplo, podemos almacenar Html usando |.
|_+_|P # 4) ¿Cuál es el significado de… al final del archivo YAML?
Responder: Tres puntos ... son identificadores opcionales. Estos se pueden utilizar para marcar el final del documento en una secuencia.
P # 5) ¿Cómo escribir comentarios en el archivo YAML?
Responder: Usamos # para escribir un comentario de una sola línea. YAML no admite comentarios de varias líneas. Por lo tanto, necesitamos usar # en varias líneas, como se muestra a continuación.
|_+_|Conclusión
En esta guía, cubrimos los pasos para preparar el entorno de desarrollo tanto en Windows como en Linux para comenzar con YAML. Casi discutimos todos los conceptos de los tipos de datos básicos de YAML, el editor de YAML y el analizador de YAML.
También hemos destacado los beneficios de utilizar YAML frente a otros lenguajes de marcado y hemos proporcionado ejemplos de código con la ayuda de un proyecto de muestra de apoyo. Esperamos que ahora los alumnos puedan usar YAML para abstraer datos de la lógica de la aplicación para escribir código eficiente y fácil de mantener.
¡¡Feliz aprendizaje!!
Lectura recomendada
- Tutorial de Python para principiantes (entrenamiento práctico de Python GRATIS)
- Proceso de introducción e instalación de Python
- Tutorial de Python Django - Introducción a Django
- Tutorial de Python DateTime con ejemplos
- Tutorial de manejo de archivos de Python: cómo crear, abrir, leer y escribir
- Tutorial TestComplete: una guía completa de la herramienta de prueba de GUI para principiantes
- Declaraciones de control de Python (Python Continue, Break y Pass)
- Conceptos de Python OOP (clases, objetos y herencia de Python)