logo

Tipos de dados YAML

YAML possui três tipos de dados:

  1. Escalar
  2. Lista
  3. Dicionário

Tipo de dados escalares:

Escalar é um tipo de dados simples. Em YAML, escalar significa um valor simples para uma chave. O valor do escalar pode ser inteiro, flutuante, booleano e string. Os tipos de dados escalares são classificados em dois tipos de dados:

  1. Tipo de dados numéricos
  2. Corda

Tipo de dados numéricos

Existem três tipos de dados numéricos:

  • Inteiro
  • Números de ponto flutuante
  • Booleanos

Um Tipo de dados inteiro pode ser decimal, octal ou hexadecimal.

Por exemplo:

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

Aqui, o valor hexadecimal é indicado por 0x e o valor octal é indicado por zero à esquerda. Quando executamos este documento em nosso script python, a seguinte saída será gerada:

 age: 12345 octalexample: 9946 hexaexample: 4820 

O valor de ponto flutuante pode ser fixo e exponencial.

Por exemplo:

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

Quando avaliarmos a entidade acima, obteremos o seguinte:

 height: 180.0 exp: 1230150.0 

A Valor booleano pode ser Verdadeiro/Falso ou Sim/Não ou Ativado/Desativado.

formato de string

Por exemplo:

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

Corda

As strings YAML são Unicode. No exemplo a seguir, definiremos uma string simples, sem usar aspas.

Exemplo:

np.onde
 --- str1: this is a normal string 

Quando processarmos isso, a seguinte saída será gerada:

 str1: this is a normal string 

Agora, definiremos uma string com uma sequência de escape. A sequência a seguir contém um caractere especial (qualquer coisa diferente de alfanumérico), portanto contém aspas duplas.

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

Quando processarmos isso, a seguinte saída será gerada:

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

Durante o arquivo YAML, podemos definir o valor de uma variável de dados como nulo. Posteriormente, podemos escrever um programa para alterar o valor de null para qualquer outro valor.

 --- str1: null str2: ~ 

Nosso programa processa isso como:

 str1: none str2: none 

Em YAML, podemos escrever uma string multilinha em uma única linha usando o símbolo >. Neste, um caractere de nova linha ( ) será ignorado.

Exemplo:

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

A string acima será interpretada sem as novas linhas da seguinte forma:

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

Em YAML, podemos escrever uma string multilinha em uma nova linha usando | símbolo. Neste, o caractere de nova linha ( ) será incluído.

Exemplo:

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

Então vemos as novas linhas onde elas estão no documento da seguinte forma:

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

Listas

Podemos definir a lista em uma única linha da seguinte forma:

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

Este estilo é conhecido como estilo de bloco. Podemos colocar a lista acima em várias linhas da seguinte forma:

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

Este estilo é conhecido como estilo de fluxo. Uma lista que contém objetos complexos precisa de múltiplas linhas.

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

Qualquer número de valores YAML válidos pode conter uma matriz. Mas o valor de uma lista não pode ser do mesmo tipo.

Dicionários

Se quisermos escrever um arquivo YAML complexo que contenha uma estrutura de dados complexa, usaremos dicionários. É uma coleção de pares chave: valor e cada um dos pares chave: valor pode ser aninhado com várias opções.

Exemplo 1:

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

No exemplo acima, student é a primeira chave e john é o valor. Hobbies são a segunda chave, mas estão aninhados, o que significa que contém uma lista de valores. O valor da chave pode novamente ser um par chave:valor, que veremos no próximo exemplo.

Exemplo 2:

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

O subjectDetails mostra uma chave, e o valor dessa chave é uma lista de pares chave:valor. fatherName, motherName e subjectName são as chaves. Onde subjectName key contém uma lista de pares chave: valor e subject1 e subject2 são as chaves para os valores 70 e 100.

loop for em shell script