Leer valores del archivo YAML

Leer valores del archivo YAML
YAML es un lenguaje de serialización de datos popular desarrollado para la legibilidad e interacción humana. Yaml es una herramienta poderosa que ofrece muchas características y flexibilidad, por lo que es una buena opción cuando se trabaja con archivos de configuración.

Este tutorial cubrirá cómo trabajar con Yaml y un lenguaje de secuencias de comandos popular, Python. Python es un gran idioma utilizado en muchas áreas, incluida la automatización (como Ansible), donde los archivos Yaml encuentran un uso pesado. Por lo tanto, la capacidad de trabajar con Yaml y Python es una gran ventaja.

Requisitos previos

Antes de comenzar con el tutorial principal, deberá cumplir los siguientes requisitos cumplidos.

  • Python3 instalado
  • En condiciones de trabajar con archivos yaml
  • Algunos conocimientos en la programación de Python.

Instalación de Pyyaml

Para trabajar con archivos Yaml en Python, usaremos el paquete Pyyaml, un analizador Yaml y un emisor para el lenguaje de Python. Es altamente flexible y puede aplicarse a diversas tareas, como archivos de configuración, serialización de datos y más.

Para instalar Pyyaml ​​en su máquina, use PIP como se muestra en el comando a continuación:

pip3 instalar pyyaml

Cómo leer un archivo YAML en Python

Para fines de ilustración, usaré un pubsec.Archivo YAML disponible en el lenguaje de programación DART. El contenido del archivo YAML está a continuación:

Nombre: Newtify
versión 1.2.3
Descripción:>-
¿Te han convertido en un tritón?? Le gustaría ser?
Este paquete puede ayudar. Tiene todo el
Newt-transmogrificación funcionalidad que ha estado buscando
para.
Página de inicio: https: // Ejemplo-pet-store.com/newtify
Documentación: https: // ejemplo-pet-store.com/Newtify/Docs
ambiente:
sdk: '> = 2.10.0 <3.0.0'
Dependencias:
Efts: ^2.0.4
transmogrificar: ^0.4.0
Dev_dependencias:
Prueba: '> = 1.15.0 <2.0.0'

Crédito: Equipo de desarrollo de Dart - https: // dart.dev/herramientas/pub/pubspec

Una vez que tengamos el archivo editado y guardado, podemos usar Python para leer los valores almacenados en el archivo.

El primer paso es importar el paquete YAML como:

>>> importar yaml

A continuación, necesitamos cargar el archivo YAML utilizando la función Safe_Load disponible en el paquete Pyyaml.

>>> con Open ("PubSec.yaml ”) como f:
pubSec = Yaml.safe_load (f)
regresar pubSec

El paso final es armar el código. El código completo es como se muestra a continuación:

importar yaml
Def Main ()::
con abierto ("Muestra.yml ") como f:
pubSec = Yaml.safe_load (f)
regresar pubSec
read_yaml = main ()
Imprimir (Read_yaml)

Desde el código anterior, comenzamos importando el paquete YAML. Luego creamos una función principal (cualquier nombre funciona) y establecemos la lógica para leer el archivo YAML.

Una vez que el archivo está abierto y leído, llamamos a la función principal. En esta etapa, el archivo YAML se convierte en un diccionario de Python.

Si ejecutamos el código, obtenemos la salida:

'Nombre': 'Newtify', 'Versión': '1.2.3 ',' descripción ':' ¿Te has convertido en un tritón?? Le gustaría ser? Este paquete puede ayudar. Tiene toda la funcionalidad de transmogrificación de Newt que ha estado buscando.',' Página de inicio ':' https: // Ejemplo-pet-store.com/newtify ',' Documentation ':' https: // ejemplo-pet-store.com/newtify/docs ',' entorno ': ' sdk ':'> = 2.10.0 <3.0.0', 'dependencies': 'efts': '^2.0.4', 'transmogrify': '^0.4.0', 'dev_dependencies': 'test': '>= 1.15.0 <2.0.0'

Esto no es muy legible; Puede usar un paquete como Pretty Print para embellecer el diccionario que se muestra arriba como:

importar yaml
Importar PPRint
Def Main ()::
con abierto ("Muestra.yml ") como f:
pubSec = Yaml.safe_load (f)
regresar pubSec
read_yaml = main ()
piprint.PPrint (Read_yaml)

Esto arrojará el contenido como:

'dependencias': 'efts': '^2.0.4 ',' transmogrificar ':'^0.4.0 ',
'Descripción': '¿Te has convertido en un tritón?? Le gustaría ser? Este '
'El paquete puede ayudar. Tiene toda la transmogrificación de Newt '
'Funcionalidad que has estado buscando.',
'dev_dependencies': 'test': '> = 1.15.0 <2.0.0',
'Documentación': 'https: // ejemplo-pet-store.com/newtify/docs ',
'ambiente': 'sdk': '> = 2.10.0 <3.0.0',
'Página de inicio': 'https: // ejemplo-pet-store.com/newtify ',
'Nombre': 'Newtify',
'versión 1.2.3 '

Ahora eso es más legible que antes.

Cómo leer los valores del archivo YAML

Para leer los valores del archivo YAML anterior, todo lo que necesitamos hacer es acceder a los datos utilizando la clave del diccionario.

Por ejemplo, para leer el valor de la clave de entorno, usamos:

>>> imprimir (read_yaml ['ambiente'])

Que nos dará el valor almacenado en la clave 'entorno' del diccionario Read_yaml. Como se muestra abajo:

'sdk': '> = 2.10.0 <3.0.0'

La salida anterior es un diccionario anidado; Podemos obtener el valor real yendo más allá del diccionario como:

print (read_yaml ['ambiente'] ['sdk'])

Esto imprimirá el valor real como:

> = 2.10.0 <3.0.0

Conclusión

Este tutorial le ha mostrado cómo leer archivos YAML en Python y leer los valores específicos de un archivo. Eso es muy útil cuando necesita un valor específico de un archivo YAML para realizar alguna operación,

Gracias por leer y feliz codificación!