Muchas herramientas modernas, especialmente en la gestión de configuraciones y en los espacios de Infraestructura como Código (IaC), utilizan archivos JSON o YAML para almacenar datos de configuración. Si necesitas convertir datos de formato YAML a JSON, entonces este artículo es para ti.
En este artículo, aprenderás varias formas de convertir datos de YAML a JSON, incluyendo scripts en Python, PowerShell y Go.
Requisitos previos
Si deseas seguir los ejemplos en este tutorial, asegúrate de tener
- A code editor. This article will use Visual Studio Code version 1.55.1. Feel free to use any code editor you want.
- Para empezar a convertir YAML a JSON, necesitas un contenido YAML de ejemplo. Copia el siguiente contenido en un archivo nuevo llamado sistemas-operativos.yml. Guarda el archivo YAML en tu directorio de trabajo.
Usando Python para Convertir YAML a JSON
Python es un excelente lenguaje para automatización. ¿Pero sabías que puedes extender las capacidades de Python y usarlo para convertir documentos de YAML a JSON? Y solo necesitas realizar unos pocos pasos para empezar a convertir YAML a JSON en poco tiempo.
El ejemplo en esta sección requiere que hayas instalado Python 3.9 y PIP (la última versión al momento de escribir esto es 21.0.1).
Agregar Soporte YAML a Python
Python no tiene soporte incorporado para YAML. Esto significa que Python no puede leer ni interpretar documentos YAML de forma predeterminada. Para agregar soporte YAML a Python, primero debes instalar el módulo PyYAML.
Para instalar el módulo PyYAML, deberás ejecutar el comando pip
, que es el instalador de paquetes para Python. Para hacerlo, sigue estos pasos.
Primero, abre tu intérprete de comandos preferido, como el símbolo del sistema o PowerShell. El comando pip
debería funcionar en cualquiera de ellos. Este ejemplo utiliza PowerShell.
A continuación, ejecuta el siguiente comando en PowerShell. Este comando instala el módulo PyYAML.
Como puedes ver en la captura de pantalla a continuación, pip
instaló la última versión de PyYAML (5.4.1 al momento de escribir esto).

Creando el Script de Conversión
Ahora que has instalado el módulo necesario (PyYAML), estás listo para escribir tu script de conversión. Para crear el script de Python que convierte YAML a JSON, sigue estos pasos.
1. Abre tu editor de código y crea un nuevo archivo llamado convertir-os.py en tu directorio de trabajo. Este archivo es tu script.
2. Copia el código a continuación y pégalo en tu archivo en blanco convert-os.py. Este script leerá el contenido YAML de operating-systems.yml, lo convertirá al formato JSON y escribirá la salida JSON en el archivo python_operating-systems.json.
3. Guarda el script convert-os.py.
Ejecución del Script de Conversión
Después de crear el script de conversión, es hora de ponerlo a prueba. Para ejecutar el script de Python que convierte YAML a JSON, sigue estos pasos:
1. Abre una ventana de terminal. Este artículo utiliza PowerShell, pero el símbolo del sistema (CMD) también funcionaría igual de bien.
2. Copia el siguiente comando, pégalo en PowerShell y presiona Enter. Este comando ejecuta el programa ejecutable de Python
para invocar el script convertir-os.py que creaste en la sección anterior.
Después de ejecutar el comando, deberías ver una salida similar a la imagen a continuación. Como puedes observar, el comando muestra la salida JSON en la pantalla y guarda la misma salida en el archivo c:\temp\python_operating-systems.json.

3. Por último, abre el archivo JSON llamado python_operating-systems.json que el script Python convertir-os.py debería haber creado. En este ejemplo, para abrir el archivo en Notepad, ejecuta el siguiente comando en PowerShell.

Usando PowerShell para Convertir YAML a JSON
PowerShell es capaz de modificar archivos de texto y convertir objetos a varios formatos, incluido JSON. Dado que PowerShell es extensible, puedes utilizar PowerShell para convertir archivos YAML a formato JSON con el módulo adecuado.
Añadiendo Soporte YAML a PowerShell
PowerShell tiene soporte incorporado para manejar contenido JSON, pero no para YAML. Afortunadamente, hay un módulo que extiende PowerShell para admitir archivos YAML. Este módulo se llama PowerShell-yaml, y la última versión hasta la fecha de esta escritura es la 0.4.2. Sigue estos pasos para instalar el módulo.
1. En tu computadora, abre una sesión de PowerShell.
2. Copia el comando a continuación, pégalo en PowerShell y presiona Enter. Este comando utiliza el cmdlet Install-Module
para instalar el módulo PowerShell-yaml.
3. Después de instalar el módulo, dos nuevos cmdlets estarán disponibles en PowerShell como parte del módulo PowerShell-yaml. Estos nuevos cmdlets son:
ConvertFrom-Yaml
– el cmdlet para convertir datos YAML a una tabla hash.
ConvertTo-Yaml
– el cmdlet para convertir objetos de tabla hash a datos YAML.
Para confirmar que ambos cmdlets están disponibles en PowerShell, ejecuta el siguiente comando en PowerShell.
Como puedes ver a continuación, el cmdlet Get-Command
enumeró los cmdlets del módulo PowerShell-yaml.

Escritura del Script de Conversión
Para crear el script de conversión de YAML a JSON en PowerShell, sigue estas instrucciones.
1. Abre tu editor de código y crea un nuevo archivo llamado convertir-os.ps1 en tu directorio de trabajo.
2. Copia el código a continuación y pégalo en el archivo en blanco convert-os.ps1. El fragmento de código siguiente lee el archivo operating-systems.yml y lo convierte a JSON. Una vez en formato JSON, guarda el JSON en el archivo PowerShell_operating-systems.json.
3. Guarda el archivo convert-os.ps1.
Ejecutando el Script de Conversión
Ahora que has creado tu script de conversión, el siguiente paso es ejecutarlo para convertir YAML a JSON. Para ejecutar el script de conversión en PowerShell, sigue estos pasos.
- Abre una ventana de PowerShell si aún no tienes una abierta.
2. Copia el comando a continuación, pégalo en PowerShell y presiona Enter. Este comando invoca el script convert-os.ps1
que has creado en la sección anterior.
3. Después de ejecutar el script, abre el archivo de salida JSON C:\temp\PowerShell_operating-systems.json que el script convert-os.ps1 creó en el paso anterior. Para hacerlo, ejecuta el siguiente comando en PowerShell para abrir el archivo PowerShell_operating-systems.json en el bloc de notas.

Usando Go para Convertir YAML a JSON
Python y PowerShell son ambos lenguajes de alto nivel. Ser de alto nivel facilita la escritura de scripts pero también quita un poco de control. Por otro lado, Go es un lenguaje de bajo nivel, lo que hace más compleja la importación de datos YAML.
El ejemplo en esta sección utilizará Go. La última versión hasta la fecha de escritura es go1.16.3. Si aún no tienes Go, consulta la página de descarga e instalación para instalarlo en tu computadora.
Añadiendo Soporte YAML a Go
Al igual que PowerShell y Python, el soporte JSON es parte de las bibliotecas principales de Go, pero YAML no lo es. Para agregar soporte YAML en Go, debes instalar primero el paquete YAML.v3 utilizando el comando go get
. Para instalar el paquete YAML.v3:
Primero, en tu computadora, abre la terminal que desees utilizar, como el símbolo del sistema o PowerShell. Este ejemplo utiliza PowerShell.
A continuación, copie el comando a continuación y ejecútelo en PowerShell. Este comando descargará e instalará el paquete gopkg.in/yaml.v3.

Escribir el Script de Conversión
Para crear el script de conversión de YAML a JSON en Go, siga estas instrucciones.
1. Abra su editor de código y cree un nuevo archivo llamado convert-os.go en su directorio de trabajo.
2. Copie el código a continuación y péguelo en el archivo en blanco convert-os.go. El código importa los paquetes necesarios, define algunas estructuras de memoria, importa el archivo YAML y lo convierte a JSON antes de escribirlo en un archivo JSON llamado c:\temp\go_operating-systems.json.
3. Guarda el archivo convert-os.go.
Ejecución del Script de Conversión
La ejecución de scripts Go utiliza el comando go run
seguido del nombre del script. Para ejecutar el script de conversión de YAML a JSON en Go, sigue estos pasos.
1. En tu computadora, abre la terminal que desees utilizar. En Windows, el comando go
funcionará tanto en el símbolo del sistema como en PowerShell. Este ejemplo utiliza PowerShell para ejecutar go
.
2. Una vez en PowerShell, copia el siguiente comando y ejecútalo en PowerShell. Este comando invocará el comando go run
para ejecutar el script c:\temp\convert-os.go.

3. Después de ejecutar el script, abre el archivo de salida C:\temp\Go_operating-systems.json que el script convert-os.go creó en el paso anterior. Este ejemplo abre el archivo Go_operating-systems.json en el Bloc de notas.

Conclusión
En este artículo, has aprendido cómo convertir datos y archivos YAML a JSON utilizando scripts en Python, PowerShell y Go. Ahora que has aprendido diferentes formas de convertir YAML a JSON, ¿cuál crees que utilizarás más?