YAML-gegevenstypen

YAML kent drie soorten gegevenstypen:

  1. Scalair
  2. Lijst
  3. Woordenboek

Scalair gegevenstype:

Scalair is een eenvoudig gegevenstype. In YAML betekent scalair een eenvoudige waarde voor een sleutel. De waarde van de scalair kan geheel getal, float, Boolean en string zijn. Scalaire gegevenstypen worden ingedeeld in twee gegevenstypen:

  1. Numeriek Gegevenstype
  2. Snaar

Numeriek Gegevenstype

Er zijn drie typen numerieke gegevenstypen:

  • Geheel getal
  • Drijvende-kommagetallen
  • Booleaanse waarden

Een Gegevenstype geheel getal kan decimaal, octaal of hexadecimaal zijn.

Bijvoorbeeld:

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

Hier wordt de hexadecimale waarde aangegeven met 0x, en de octale waarde met voorloopnul. Wanneer we dit document uitvoeren op ons Python-script, wordt de volgende uitvoer gegenereerd:

 age: 12345 octalexample: 9946 hexaexample: 4820  

De drijvende-kommawaarde kan vast en exponentieel zijn.

Bijvoorbeeld:

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

Wanneer we de bovenstaande entiteit evalueren, krijgen we het volgende:

 height: 180.0 exp: 1230150.0  

A Booleaanse waarde kan Waar/Onwaar of Ja/Nee of Aan/Uit zijn.

Bijvoorbeeld:

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

Snaar

YAML-tekenreeksen zijn Unicode. In het volgende voorbeeld gaan we een eenvoudige tekenreeks definiëren, zonder aanhalingstekens.

Voorbeeld:

 --- str1: this is a normal string  

Wanneer we dit verwerken, wordt de volgende uitvoer gegenereerd:

 str1: this is a normal string  

Nu zullen we een string definiëren met een escape-reeks. De volgende tekenreeks bevat een speciaal teken (anders dan alfanumeriek), dus dubbele aanhalingstekens.

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

Wanneer we dit verwerken, wordt de volgende uitvoer gegenereerd:

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

Tijdens het YAML-bestand kunnen we de waarde van een gegevensvariabele instellen op nul. Later kunnen we een programma schrijven om de waarde van null in een andere waarde te veranderen.

 --- str1: null str2: ~  

Ons programma verwerkt dit als:

 str1: none str2: none  

In YAML kunnen we een tekenreeks van meerdere regels op één regel schrijven met behulp van het > symbool. Hierin wordt een newline-teken ( ) genegeerd.

Voorbeeld:

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

De bovenstaande string wordt zonder de nieuwe regels als volgt geïnterpreteerd:

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

In YAML kunnen we een tekenreeks met meerdere regels in een nieuwe regel schrijven met behulp van | symbool. Hierin wordt het newline-teken ( ) opgenomen.

Voorbeeld:

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

We zien de nieuwe regels dus als volgt in het document:

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

Lijsten

We kunnen de lijst als volgt op één regel definiëren:

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

Deze stijl staat bekend als blokstijl. We kunnen de bovenstaande lijst als volgt in meerdere regels plaatsen:

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

Deze stijl staat bekend als flowstijl. Een lijst die complexe objecten bevat, heeft meerdere regels nodig.

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

Een array kan een willekeurig aantal geldige YAML-waarden bevatten. Maar de waarde van een lijst kan niet van hetzelfde type zijn.

Woordenboeken

Als we een complex YAML-bestand willen schrijven dat de complexe datastructuur bevat, zullen we woordenboeken gebruiken. Het is een verzameling sleutel-waardeparen en elk van de sleutel-waardeparen kan met veel opties worden genest.

Voorbeeld 1:

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

In het bovenstaande voorbeeld is student de eerste sleutel en john de waarde. Hobby's zijn de tweede sleutel, maar deze is genest, wat betekent dat deze een lijst met waarden bevat. De waarde van de sleutel kan opnieuw een sleutel:waardepaar zijn, wat we in het volgende voorbeeld zullen zien.

Voorbeeld 2:

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

De subjectDetails toont een sleutel, en de waarde van deze sleutel is een lijst met sleutel: waardeparen. vadernaam, moedernaam en onderwerpnaam zijn de sleutels. Waar de sleutel subjectName een lijst met sleutel bevat: waardeparen en onderwerp1 en onderwerp2 zijn de sleutels voor de waarden 70 en 100.