Tipi di dati YAML

YAML ha tre tipi di dati:

  1. Scalare
  2. Elenco
  3. Dizionario

Tipo di dati scalare:

Scalare è un tipo di dati semplice. In YAML, scalare indica un valore semplice per una chiave. Il valore dello scalare può essere intero, float, booleano e stringa. I tipi di dati scalari sono classificati in due tipi di dati:

  1. Tipo di dati numerici
  2. Corda

Tipo di dati numerici

Esistono tre tipi di dati numerici:

  • Numero intero
  • Numeri in virgola mobile
  • Booleani

UN Tipo di dati intero può essere decimale, ottale o esadecimale.

Per esempio:

 --- age: 12345 octalexample: 012345 hexaexample: 0x12d4  

Qui, il valore esadecimale è indicato da 0x e il valore ottale è indicato dallo zero iniziale. Quando eseguiamo questo documento sul nostro script Python, verrà generato il seguente output:

 age: 12345 octalexample: 9946 hexaexample: 4820  

IL valore in virgola mobile può essere fisso ed esponenziale.

Per esempio:

 --- height: 180.0 exp: 12.3015e+05  

Quando valutiamo l'entità di cui sopra, otterremo quanto segue:

 height: 180.0 exp: 1230150.0  

UN Valore booleano può essere Vero/Falso o Sì/No o On/Off.

Per esempio:

 --- boolenval1: True booleanval2: False fan: On light: Off  

Corda

Le stringhe YAML sono Unicode. Nell'esempio seguente definiremo una stringa semplice, senza utilizzare le virgolette.

Esempio:

 --- str1: this is a normal string  

Quando lo elaboriamo, verrà generato il seguente output:

 str1: this is a normal string  

Ora definiremo una stringa con una sequenza di escape. La stringa seguente contiene un carattere speciale (qualsiasi cosa diversa da quella alfanumerica), quindi contiene virgolette doppie.

 --- str1: 'the cost is 390
' str2: the cost is 390
  

Quando lo elaboriamo, verrà generato il seguente output:

 str1: the cost is 390 str2: the cost is 390
  

Durante il file YAML, possiamo impostare il valore di una variabile di dati su null. Successivamente, possiamo scrivere un programma per modificare il valore di null in qualsiasi altro valore.

 --- str1: null str2: ~  

Il nostro programma lo elabora come:

 str1: none str2: none  

In YAML, possiamo scrivere una stringa su più righe in un'unica riga utilizzando il simbolo >. In questo, un carattere di nuova riga ( ) verrà ignorato.

Esempio:

 str: > this is a multi-line string it spans more than one line  

La stringa precedente verrà interpretata senza le nuove righe come segue:

 str : this is a multi-line string it spans more than one line  

In YAML, possiamo scrivere una stringa su più righe in un fine riga utilizzando | simbolo. In questo, verrà incluso il carattere di nuova riga ( ).

Esempio:

 str: | this is a multi-line string it spans more than one line  

Quindi vediamo le nuove righe dove si trovano nel documento come segue:

 str : this is a multi-line string it spans more than one line  

Elenchi

Possiamo definire l'elenco in un'unica riga come segue:

 --- items: [6, 7, 8, 9, 10] name: [six, seven, eight, nine, ten]  

Questo stile è noto come stile a blocchi. Possiamo inserire l'elenco sopra su più righe come segue:

 --- items: - 6 - 7 - 8 name: - 'six' - 'seven' - 'eight' - 'nine'  

Questo stile è noto come stile di flusso. Un elenco che contiene oggetti complessi necessita di più righe.

 --- items: - values: value1: value 2: value 3: - other values: key: value  

Qualsiasi numero di valori YAML validi può contenere un array. Ma il valore di una lista non può essere dello stesso tipo.

Dizionari

Se vogliamo scrivere un file YAML complesso che contenga la struttura dati complessa, utilizzeremo i dizionari. È una raccolta di coppie chiave: valore e ciascuna coppia chiave: valore può essere nidificata con molte opzioni.

Esempio 1:

 --- student1: 'john' hobbies: - music - reading - dancing  

Nell'esempio precedente, student è la prima chiave e john è il valore. Gli hobby sono la seconda chiave, ma è nidificata, il che significa che contiene un elenco di valori. Il valore della chiave può ancora essere una coppia chiave:valore, che vedremo nel prossimo esempio.

Esempio 2:

 student2: fatherName: 'William' motherName: 'Marry' subjectDetails: subject1: 70 subject2: 100  

Il soggettoDetails mostra una chiave e il valore di questa chiave è un elenco di coppie chiave: valore. padreNome, madreNome e soggettoNome sono le chiavi. Dove la chiave objectName contiene un elenco di coppie chiave: valore e soggetto1 e soggetto2 sono le chiavi per i valori 70 e 100.