logo

Datové typy YAML

YAML má tři typy datových typů:

  1. Skalární
  2. Seznam
  3. Slovník

Skalární datový typ:

Skalární je jednoduchý datový typ. V YAML znamená skalární jednoduchou hodnotu klíče. Hodnota skaláru může být integer, float, boolean a string. Skalární datové typy se dělí na dva datové typy:

  1. Číselný Typ dat
  2. Tětiva

Číselný Typ dat

Existují tři typy číselných datových typů:

  • Celé číslo
  • Čísla s pohyblivou řádovou čárkou
  • Booleans

An Integer datový typ může být desítkové, osmičkové nebo šestnáctkové.

Například:

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

Zde je hexadecimální hodnota označena 0x a osmičková hodnota je označena úvodní nulou. Když spustíme tento dokument na našem python skriptu, vygeneruje se následující výstup:

řetězec na char
 age: 12345 octalexample: 9946 hexaexample: 4820 

The hodnota s plovoucí desetinnou čárkou může být fixní a exponenciální.

Například:

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

Když vyhodnotíme výše uvedenou entitu, dostaneme následující:

 height: 180.0 exp: 1230150.0 

A Booleovská hodnota může být True/False nebo Yes/No nebo On/Off.

Například:

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

Tětiva

Řetězce YAML jsou Unicode. V následujícím příkladu budeme definovat jednoduchý řetězec bez použití uvozovek.

Příklad:

 --- str1: this is a normal string 

Když to zpracujeme, vygeneruje se následující výstup:

 str1: this is a normal string 

Nyní definujeme řetězec s escape sekvencí. Následující řetězec obsahuje speciální znak (jakýkoli jiný než alfanumerický), takže obsahuje dvojité uvozovky.

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

Když to zpracujeme, vygeneruje se následující výstup:

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

Během souboru YAML můžeme nastavit hodnotu datové proměnné na hodnotu null. Později můžeme napsat program, který změní hodnotu null na jakoukoli jinou hodnotu.

 --- str1: null str2: ~ 

Náš program to zpracovává takto:

 str1: none str2: none 

V YAML můžeme napsat víceřádkový řetězec na jeden řádek pomocí symbolu >. V tomto případě bude znak nového řádku ( ) ignorován.

Příklad:

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

Výše uvedený řetězec bude interpretován bez nových řádků takto:

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

V YAML můžeme napsat víceřádkový řetězec do nového řádku pomocí | symbol. V tomto bude zahrnut znak nového řádku ( ).

Příklad:

nový řádek python
 str: | this is a multi-line string it spans more than one line 

Takže vidíme nové řádky, kde jsou v dokumentu takto:

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

Seznamy

Seznam můžeme definovat na jednom řádku takto:

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

Tento styl je známý jako blokový styl. Výše uvedený seznam můžeme rozdělit na několik řádků takto:

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

Tento styl je známý jako styl proudění. Seznam, který obsahuje složité objekty, potřebuje více řádků.

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

Pole může obsahovat libovolný počet platných hodnot YAML. Ale hodnota seznamu nemůže být stejného typu.

Slovníky

Pokud chceme napsat komplexní soubor YAML, který obsahuje komplexní datovou strukturu, použijeme slovníky. Jedná se o sbírku párů klíč:hodnota a každý z párů klíč:hodnota lze vnořit s mnoha možnostmi.

Příklad 1:

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

Ve výše uvedeném příkladu je student prvním klíčem a john je hodnota. Koníčky jsou druhým klíčem, ale je vnořený, což znamená, že obsahuje seznam hodnot. Hodnotou klíče může být opět dvojice klíč:hodnota, kterou uvidíme v dalším příkladu.

Příklad 2:

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

SubjectDetails zobrazuje klíč a hodnota tohoto klíče je seznam párů klíč: hodnota. FatherName, motherName a subjectName jsou klíče. Kde klíč subjectName obsahuje seznam klíčů: páry hodnot a předmět1 a předmět2 jsou klíče pro hodnoty 70 a 100.