Molti strumenti moderni, in particolare nello spazio della gestione della configurazione e dell’Infrastruttura come Codice (IaC), utilizzano file JSON o YAML per memorizzare i dati di configurazione. Se hai bisogno di convertire i dati dal formato YAML al formato JSON, allora questo articolo fa al caso tuo.
In questo articolo, imparerai diversi modi per convertire i dati da YAML a JSON, incluso lo scripting in Python, PowerShell e Go.
Prerequisiti
Se desideri seguire gli esempi in questo tutorial, assicurati di avere
- A code editor. This article will use Visual Studio Code version 1.55.1. Feel free to use any code editor you want.
- Per iniziare a convertire YAML in JSON, hai bisogno di un esempio di contenuto YAML. Copia il contenuto sottostante in un nuovo file chiamato sistemi-operativi.yml. Salva il file YAML nella tua directory di lavoro.
Utilizzando Python per convertire YAML in JSON
Python è un eccellente linguaggio da utilizzare per l’automazione. Ma sapevi che puoi estendere le capacità di Python e usarlo per convertire documenti da YAML a JSON? E devi solo eseguire alcuni passaggi per iniziare a convertire YAML in JSON in poco tempo.
Il esempio in questa sezione richiede che tu abbia installato Python 3.9 e PIP (l’ultima versione al momento di questa scrittura è la 21.0.1).
Aggiunta del supporto YAML a Python
Python non ha il supporto nativo per YAML. Ciò significa che Python non può leggere o interpretare documenti YAML di default. Per aggiungere il supporto YAML a Python, devi prima installare il modulo PyYAML.
Per installare il modulo PyYAML, dovrai eseguire il comando pip
, che è l’installatore di pacchetti per Python. Per farlo, segui questi passaggi.
Innanzitutto, apri il tuo interprete di comandi preferito, come il prompt dei comandi o PowerShell. Il comando pip
dovrebbe funzionare in entrambi. In questo esempio, viene utilizzato PowerShell.
Successivamente, esegui il comando sottostante in PowerShell. Questo comando installa il modulo PyYAML.
Come puoi vedere nello screenshot sottostante, pip
ha installato l’ultima versione di PyYAML (5.4.1 al momento di questa scrittura).

Scrittura dello script di conversione
Ora che hai installato il modulo richiesto (PyYAML), sei pronto per scrivere il tuo script di conversione. Per creare lo script Python per la conversione da YAML a JSON, segui questi passaggi.
1. Apri il tuo editor di codice e crea un nuovo file chiamato converti-os.py nella tua directory di lavoro. Questo file è il tuo script.
2. Copia il codice qui sotto e incollalo nel tuo file convert-os.py vuoto. Questo script leggerà il contenuto YAML di operating-systems.yml, convertirà il contenuto nel formato JSON e scriverà l’output JSON nel file python_operating-systems.json.
3. Salva lo script convert-os.py.
Esecuzione dello script di conversione
Dopo aver creato lo script di conversione, è il momento di metterlo alla prova. Per eseguire lo script Python YAML to JSON, procedi come segue:
1. Apri una finestra di terminale. Questo articolo utilizza PowerShell, ma il prompt dei comandi (CMD) funzionerebbe altrettanto bene.
2. Copia il comando seguente, incollalo in PowerShell e premi Invio. Questo comando esegue il programma eseguibile Python
per invocare lo script convert-os.py che hai creato nella sezione precedente.
Dopo aver eseguito il comando, dovresti vedere un output simile all’immagine qui sotto. Come puoi vedere, il comando ha visualizzato l’output JSON sullo schermo e salvato lo stesso output nel file c:\temp\python_operating-systems.json.

3. Infine, apri il file JSON chiamato python_operating-systems.json che lo script Python convert-os.py dovrebbe aver creato. In questo esempio, per aprire il file in Notepad, esegui il comando seguente in PowerShell.

Utilizzo di PowerShell per convertire YAML in JSON
PowerShell è in grado di modificare file di testo e convertire oggetti in diversi formati, incluso JSON. Poiché PowerShell è estensibile, è possibile utilizzarlo per convertire il formato YAML in JSON con il modulo corretto.
Aggiunta del supporto YAML a PowerShell
PowerShell ha il supporto integrato per la gestione dei contenuti JSON, ma non per YAML. Fortunatamente, esiste un modulo che estende PowerShell per supportare i file YAML. Questo modulo si chiama PowerShell-yaml, e l’ultima versione disponibile al momento della stesura è la 0.4.2. Segui questi passaggi per installare il modulo.
1. Sul tuo computer, apri una sessione PowerShell.
2. Copia il comando seguente, incollalo in PowerShell e premi Invio. Questo comando utilizza il cmdlet Install-Module
per installare il modulo PowerShell-yaml.
3. Dopo aver installato il modulo, due nuovi cmdlet diventeranno disponibili in PowerShell come parte del modulo PowerShell-yaml. Questi nuovi cmdlet sono:
ConvertFrom-Yaml
– il cmdlet per convertire dati YAML in una tabella hash.
ConvertTo-Yaml
– il cmdlet per convertire oggetti di tabella hash in dati YAML.
Per confermare che entrambi i cmdlet siano disponibili in PowerShell, esegui il comando seguente in PowerShell.
Come puoi vedere qui sotto, il cmdlet Get-Command
ha elencato i cmdlet dal modulo PowerShell-yaml.

Scrittura dello Script di Conversione
Per creare lo script di conversione YAML in JSON PowerShell, segui queste istruzioni.
1. Apri il tuo editor di codice e crea un nuovo file chiamato convert-os.ps1 nella tua directory di lavoro.
2. Copia il codice qui sotto e incollalo nel file convert-os.ps1. Il frammento di codice qui sotto legge il file operating-systems.yml e lo converte in JSON. Una volta convertito in JSON, lo memorizza nel file PowerShell_operating-systems.json.
3. Salva il file convert-os.ps1.
Esecuzione dello script di conversione
Ora che hai creato lo script di conversione, il prossimo passo è eseguirlo per convertire YAML in JSON. Per eseguire lo script di conversione PowerShell, segui questi passaggi.
- Apri una finestra di PowerShell se non ne hai ancora una aperta.
2. Copia il comando qui sotto, incollalo in PowerShell e premi Invio. Questo comando richiama lo script convert-os.ps1
che hai creato nella sezione precedente.
3. Dopo aver eseguito lo script, apri il file di output JSON C:\temp\PowerShell_operating-systems.json che lo script convert-os.ps1 ha creato nello step precedente. Per farlo, esegui il comando qui sotto in PowerShell per aprire il file PowerShell_operating-systems.json con il blocco note.

Utilizzando Go per Convertire YAML in JSON
Python e PowerShell sono entrambi linguaggi di alto livello. Essere di alto livello rende la scrittura degli script più semplice ma toglie un po’ di controllo. D’altro canto, Go è un linguaggio di basso livello, il che rende più complessa l’importazione dei dati YAML.
L’esempio in questa sezione utilizzerà Go. La versione più recente al momento della stesura è go1.16.3. Se non hai ancora Go, consulta la pagina di download e installazione per installarlo sul tuo computer.
Aggiunta del Supporto YAML a Go
Come PowerShell e Python, il supporto JSON fa parte delle librerie core di Go, ma YAML no. Per aggiungere il supporto YAML in Go, devi prima installare il pacchetto YAML.v3 usando il comando go get
. Per installare il pacchetto YAML.v3:
Prima, sul tuo computer, apri la shell di comando che vuoi utilizzare, come il prompt dei comandi o PowerShell. Questo esempio utilizza PowerShell.
Next, copia il comando seguente e eseguilo in PowerShell. Questo comando scaricherà e installerà il pacchetto con il nome gopkg.in/yaml.v3.

Scrivere lo Script di Conversione
Per creare lo script di conversione da YAML a JSON in Go, segui queste istruzioni.
1. Apri il tuo editor di codice e crea un nuovo file chiamato convert-os.go nella tua directory di lavoro.
2. Copia il codice sottostante e incollalo nel file vuoto convert-os.go. Il codice importa i pacchetti necessari, definisce alcune strutture di memoria, importa il file YAML e converte in JSON prima di scriverlo in un file JSON chiamato c:\temp\go_operating-systems.json.
3. Salva il file convert-os.go.
Esecuzione dello script di conversione
L’esecuzione degli script Go utilizza il comando go run
seguito dal nome dello script. Per eseguire lo script Go di conversione YAML in JSON, procedi come segue.
1. Sul tuo computer, apri la shell di comando che desideri utilizzare. Su Windows, il comando go
funzionerà sia nel prompt dei comandi che in PowerShell. Questo esempio utilizza PowerShell per eseguire go
.
2. Una volta in PowerShell, copia il comando sottostante ed eseguilo in PowerShell. Questo comando invocherà il comando go run
per eseguire lo script c:\temp\convert-os.go.

3. Dopo aver eseguito lo script, apri il file di output C:\temp\Go_operating-systems.json che lo script convert-os.go ha creato nel passaggio precedente. Questo esempio apre il file Go_operating-systems.json con Notepad.

Conclusioni
In questo articolo hai imparato come convertire dati e file YAML in JSON utilizzando script in Python, PowerShell e Go. Ora che hai imparato diversi modi per convertire YAML in JSON, quale pensi che userai di più?