Tutoriel YAML - Un Guide Complet Sur YAML à L'aide De Python - Autre

yaml tutorial comprehensive guide yaml using python

Essayez Notre Instrument Pour Éliminer Les Problèmes

Sélectionnez Le Système D'Exploitation Windows 10 Windows 8 Windows 7 Windows Vista Windows XP macOS Big Sur Ubuntu Debian Fedora CentOS Arch Linux Linux Mint FreeBSD OpenSUSE Manjaro Choisissez Un Programme De Projection (Éventuellement) - Python JavaScript Java C# C++ Ruby Swift PHP Go TypeScript Kotlin Rust Scala Perl Décrivez Votre Problème Obtenez Une Réponse Envoyez-Moi Par E-Mail Montrer Sur Le Site

Ce didacticiel YAML explique ce qu'est YAML, les concepts de base de YAML tels que les types de données, YAML Validator, Parser, Editor, Files, etc. à l'aide d'exemples de code utilisant Python:

Le traitement de texte en informatique aide les programmeurs à créer des programmes et des applications configurables. Les langages de balisage jouent un rôle essentiel dans le stockage et l'échange de données dans un format lisible par l'homme.

En outre, les programmeurs utilisent des langages de balisage comme formats d'échange de données courants et standard entre différents systèmes. Quelques exemples des langages de balisage incluent HTML, XML, XHTML et JSON.

Nous avons partagé des informations sur un autre langage de balisage dans ce tutoriel YAML facile à suivre.

Tutoriel YAML

Ce didacticiel aide les lecteurs à trouver des réponses aux questions ci-dessous. Les apprenants peuvent faire les premiers pas et comprendre le mystère des langages de balisage en général et du YAML en particulier.

Les questions comprennent:

  • Pourquoi avons-nous besoin de langages de balisage?
  • Que signifie YAML?
  • Pourquoi YAML a-t-il été créé?
  • Pourquoi avons-nous besoin d'apprendre YAML?
  • Pourquoi est-il important aujourd'hui d'apprendre YAML?
  • Quel type de données puis-je stocker dans un YAML?

Ce guide est également utile pour les lecteurs expérimentés car nous discutons des concepts dans le contexte de la programmation en général, ainsi que dans le contexte des tests de logiciels. Nous aborderons également des sujets tels que la sérialisation et la désérialisation ici.

Ce que vous apprendrez:

  • Qu'est-ce que YAML
    • Pourquoi avons-nous besoin de langages de balisage
    • Avantages de l'utilisation d'un fichier YAML
    • Conditions préalables
      • Installez Python
      • Configurer Python avec IntelliJ IDEA
  • Bases de YAML
    • Types de données YAML
    • Lire le fichier YAML en Python
    • Ecrire un fichier YAML en Python
    • Plusieurs documents dans YAML
    • Questions fréquemment posées
  • Conclusion
    • lecture recommandée

Qu'est-ce que YAML

Les créateurs de YAML l'ont initialement appelé «encore un autre langage de balisage». Cependant, avec le temps, l'acronyme est devenu 'YAML n'est pas un langage MarkUp'. YAML est un acronyme qui se réfère à lui-même et s'appelle un acronyme récursif.

Nous pouvons utiliser ce langage pour stocker les données et la configuration dans un format lisible par l'homme. YAML est une langue élémentaire à apprendre. Ses constructions sont également faciles à comprendre.

Clark, Ingy et Oren ont créé YAML pour aborder les complexités de la compréhension d'autres langages de balisage, qui sont difficiles à comprendre, et la courbe d'apprentissage est également plus raide que l'apprentissage de YAML.

Pour rendre l'apprentissage plus confortable, comme toujours, nous utilisons un exemple de projet. Nous hébergeons ce projet sur Github avec une licence MIT pour que quiconque puisse apporter des modifications et soumettre une pull request si nécessaire.

Vous pouvez cloner le projet à l'aide de la commande ci-dessous.

git clone [email protected]:h3xh4wk/yamlguide.git

Cependant, si nécessaire, vous pouvez télécharger le zip fichier pour le code et les exemples.

Les lecteurs peuvent également cloner ce projet à l'aide d'IntelliJ IDEA. Veuillez compléter la section sur les prérequis pour installer Python et le configurer avec IntelliJ IDEA avant de cloner le projet.

GetRepository_from_Github
Obtenir le référentiel de Github

Pourquoi avons-nous besoin de langages de balisage

Il est impossible de tout écrire en code logiciel. C'est parce que nous avons besoin de maintenir le code de temps en temps et que nous devons résumer les spécificités des fichiers externes ou des bases de données.

Il est recommandé de réduire le code au minimum possible et de le créer de manière à ne pas nécessiter de modification pour les différentes entrées de données nécessaires.

Par exemple, nous pouvons écrire une fonction pour prendre les données d'entrée d'un fichier externe et imprimer son contenu ligne par ligne plutôt que d'écrire le code et les données ensemble dans un seul fichier.

Elle est considérée comme une bonne pratique car elle sépare les préoccupations de création des données et de création du code. L'approche de programmation consistant à extraire les données du code garantit une maintenance facile.

Les langages de balisage nous permettent de stocker plus facilement les informations hiérarchiques dans un format plus accessible et plus léger. Ces fichiers peuvent être échangés entre des programmes sur Internet sans consommer beaucoup de bande passante et prennent en charge les protocoles les plus courants.

Ces langues suivent une norme universelle et prennent en charge divers encodages pour prendre en charge les caractères de presque toutes les langues parlées dans le monde.

quel est le meilleur logiciel d'optimisation de PC

La meilleure chose à propos des langages de balisage est que leur utilisation générale n'est associée à aucune commande système, et cette caractéristique les rend plus sûrs et est la raison de leur adoption généralisée et mondiale. Par conséquent, vous ne trouverez peut-être aucune commande YAML que nous pouvons exécuter directement pour créer une sortie.

Avantages de l'utilisation d'un fichier YAML

YAML présente de nombreux avantages. Le tableau ci-dessous montre une comparaison entre YAML et JSON. JSON signifie JavaScript Object Notation, et nous l'utilisons comme format d'échange de données.

Attribut YAML JSON
Verbosité Moins verbeuxPlus verbeux
Types de données Prend en charge les types de données complexes.Ne prend pas en charge les types de données complexes.
commentaires Prend en charge l'écriture de commentaires en utilisant '#'.Ne prend pas en charge la rédaction de commentaires.
Lisibilité Plus lisible par l'homme.Moins lisible par l'homme.
Auto-références Prend en charge le référencement des éléments dans les mêmes documents en utilisant «&» et *.Ne prend pas en charge l'auto-référencement.
Documents multiples Prend en charge plusieurs documents dans un seul fichier.Prend en charge un seul document dans un seul fichier.

En raison des avantages de YAML par rapport aux autres formats de fichiers tels que JSON, YAML est plus répandu parmi les développeurs pour sa polyvalence et sa flexibilité.

Conditions préalables

Nous installons d'abord Python, puis configurons Python et ses packages avec IntelliJ IDEA. Par conséquent, veuillez installer IntelliJ IDEA s'il n'est pas déjà installé avant de continuer.

Installez Python

Suivez ces étapes pour installer et configurer Python sur Windows 10.

Étape 1

Télécharger Python et installez-le en sélectionnant la configuration comme indiqué dans l'image ci-dessous.

Télécharger la configuration de Python
Télécharger Python

Étape 2

Démarrez la configuration et sélectionnez personnaliser l'installation. Cochez la case de Ajouter Python à PATH .

Install_Python_Setup
Personnaliser l'installation

Étape 3

Personnalisez l'emplacement de Python tel qu'il apparaît dans l'image.

Personnaliser l ou | pour écrire de longues chaînes sur plusieurs lignes.

Regardez les différents types de données et valeurs mappées dans le tableau ci-dessous.

Type de données Exemples de types de données dans Config.yml
Chaîne de caractères Les chaînes peuvent être stockées avec ou sans guillemets.quiz: description:> Ce quiz est pour apprendre YAML des questions: - 'Qui se trouve le plus sur le Web?' réponses: - chats
Entier et flottant Les nombres entiers et les flottants sont mentionnés dans leur forme originale quiz: des questions: - 'Quelle est la valeur de pi?' - 'Combien de membres maximum peuvent jouer au TT?' réponses: - 3.141592653589793 - 4
Booléen Les booléens sont stockés en utilisant la chaîne true / false ou yes / no quiz: des questions: - 'Pluton est-il lié aux relations platoniques?' - «Tu ne sais pas que l'Univers est en constante expansion? réponses: - vrai - ne pas
Séquences Les séquences sont créées à l'aide de crochets (. quiz: réponses: - (8, 'pluton')
Les références L'auto-référencement est utilisé à l'aide de & et * # conversion de données explicite et réutilisation des blocs de données supplémentaire: refer: & id011 # donne une référence aux données # Autres valeurs encore: * id011 # appeler les données en donnant la référence

Vous trouverez ci-dessous certains des éléments supplémentaires intéressants d'un fichier YAML.

Document

Maintenant, remarquez les trois tirets -. Cela signifie le début d'un document. Nous stockons le premier document avec un quiz comme élément racine, et la description, les questions et réponses comme éléments enfants avec leurs valeurs associées.

Types de données explicites

Observez la clé de section appelée extra dans le config.yml. Nous voyons qu'à l'aide de doubles exclamations, nous pouvons mentionner explicitement les types de données des valeurs stockées dans le fichier. Nous convertissons un entier en float en utilisant !! float. Nous utilisons !! str pour convertir un entier en chaîne et utiliser !! int pour convertir une chaîne en entier.

Le package YAML de Python nous aide à lire le fichier YAML et à le stocker en interne sous forme de dictionnaire. Python stocke les clés du dictionnaire sous forme de chaînes et convertit automatiquement les valeurs en types de données Python, sauf indication explicite en utilisant «!!».

Lire le fichier YAML en Python

En général, nous utilisons l'éditeur YAML et un validateur YAML au moment de la rédaction de YAML. YAML Validator vérifie le fichier au moment de l'écriture.

Le package Python YAML a un analyseur YAML intégré, qui analyse le fichier avant de le stocker en mémoire.

Maintenant, créons et ouvrons config.py dans nos éditeurs respectifs avec le contenu ci-dessous.

import yaml import pprint def read_yaml(): ''' A function to read YAML file''' with open('config.yml') as f: config = yaml.safe_load(f) return config if __name__ == '__main__': # read the config yaml my_config = read_yaml() # pretty print my_config pprint.pprint(my_config)

Pour vérifier que vous avez terminé les étapes décrites ci-dessus, exécutez config.py.

Ouvrez le fichier config.py dans IntelliJ IDEA, recherchez le bloc principal et exécutez le fichier à l'aide de l'icône de lecture.

Config_Run_example
Exemple d'exécution de configuration

Une fois que nous exécutons le fichier, nous voyons la console avec la sortie.

Config_Run_example_output
Exemple de sortie de Config Run

Dans la fonction read_yaml, nous ouvrons le fichier config.yml et utilisons la méthode safe_load du package YAML pour lire le flux en tant que dictionnaire Python, puis renvoyons ce dictionnaire à l'aide du mot-clé return.

La variable my_config stocke le contenu du fichier config.yml sous forme de dictionnaire. En utilisant le joli package d'impression de Python appelé pprint, nous imprimons le dictionnaire sur la console.

Notez la sortie ci-dessus. Toutes les balises YAML correspondent aux types de données de Python afin que le programme puisse continuer à utiliser ces valeurs. Ce processus de construction d'objets Python à partir de l'entrée de texte est appelé désérialisation.

Ecrire un fichier YAML en Python

Ouvrez config.py et ajoutez les lignes de code suivantes juste en dessous de la méthode read_yaml et au-dessus du bloc principal du fichier.

def write_yaml(data): ''' A function to write YAML file''' with open('toyaml.yml', 'w') as f: yaml.dump(data, f)

Dans la méthode write_yaml, nous ouvrons un fichier appelé toyaml.yml en mode écriture et utilisons la méthode de vidage des packages YAML pour écrire le document YAML dans le fichier.

Ajoutez maintenant les lignes de code ci-dessous à la fin du fichier config.py

# write A python object to a file write_yaml(my_config)

Enregistrez le config.py et exécutez le fichier en utilisant la commande ci-dessous ou en utilisant l'icône de lecture dans l'EDI.

python config.py

Nous voyons que la commande ci-dessus imprime le contenu de config.yml sur la console ou la sortie du système. Le programme Python écrit le même contenu dans un autre fichier appelé toyaml.yml. Le processus d'écriture de l'objet Python dans un fichier externe est appelé sérialisation.

Plusieurs documents dans YAML

YAML est assez polyvalent et nous pouvons stocker plusieurs documents dans un seul fichier YAML.

Créez une copie du fichier config.yml sous le nom configs.yml et collez les lignes ci-dessous à la fin du fichier.

--- quiz: description: | This is another quiz, which is the advanced version of the previous one questions: q1: desc: 'Which value is no value?' ans: Null q2: desc: 'What is the value of Pi?' ans: 3.1415

Trois tirets - dans l'extrait ci-dessus, marque le début d'un nouveau document dans le même fichier. Utilisation de | après la balise description nous permet d'écrire un texte multiligne de type string. Ici, dans le nouveau document, nous avons stocké les questions et les réponses sous forme de mappages séparés imbriqués sous les questions.

Créez maintenant un nouveau fichier appelé configs.py et collez le code mentionné ci-dessous dans le fichier.

import yaml import pprint def read_yaml(): ''' A function to read YAML file''' with open('configs.yml') as f: config = list(yaml.safe_load_all(f)) return config def write_yaml(data): ''' A function to write YAML file''' with open('toyaml.yml', 'a') as f: yaml.dump_all(data, f, default_flow_style=False) if __name__ == '__main__': # read the config yaml my_config = read_yaml() # pretty print my_config pprint.pprint(my_config) # write A python object to a file write_yaml(my_config)

Notez les changements dans les fonctions read_yaml et write_yaml. Dans read_yaml, nous utilisons la méthode safe_load_all du package YAML pour lire tous les documents présents dans configs.yml sous forme de liste. De même, dans write_yaml, nous utilisons la méthode dump_all pour écrire la liste de tous les documents précédemment lus dans un nouveau fichier appelé toyaml.yml.

Exécutez maintenant configs.py.

python configs.py

La sortie de la commande ci-dessus est affichée ci-dessous.

({'quiz': {'answers': ((8, 'pluto'), 'cats', 3.141592653589793, True, 4, None, False), 'description': 'This Quiz is to learn YAML', 'questions': (('How many planets are there in the solar system?', 'Name the non planet'), 'Who is found more on the web?', 'What is the value of pi?', 'Is pluto related to platonic relationships?', 'How many maximum members can play TT?', 'Which value is no value?', 'Don't you know that Universe is ever-expanding?')}}, {'quiz': {'description': 'This is another quiz, which ' 'is the advanced version of the previous one ', 'questions': {'q1': {'ans': None, 'desc': 'Which value is no value?'}, 'q2': {'ans': 3.1415, 'desc': 'What is the value of Pi?'}}}})

La sortie est similaire à la sortie de document unique mentionnée précédemment. Python convertit chaque document du configs.yml en un dictionnaire Python. Cela facilite le traitement et l'utilisation ultérieurs des valeurs.

Questions fréquemment posées

Vous pouvez rencontrer les questions ci-dessous en travaillant avec YAML.

Q # 1) Est-il possible de conserver l'ordre des mappages YAML?

Répondre: Oui, il est possible de personnaliser le comportement par défaut des chargeurs dans le package pyYAML de Python. Cela implique l'utilisation de OrderedDicts et le remplacement du résolveur de base avec des méthodes personnalisées, comme indiqué Ici .

Q # 2) Comment stocker une image dans YAML?

Répondre: Vous pouvez encoder une image en base64 et la conserver en YAML, comme indiqué ci-dessous.

image: !!binary | iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mP8/5+hHgAHggJ/PchI7wAAAABJRU5ErkJggg==

Q # 3) Quelle est la différence entre> et | tags en YAML?

Répondre: Les deux> et | autorise l'écriture de valeurs sur plusieurs lignes en YAML. Nous utilisons plus de symbole> pour écrire des chaînes multilignes et | pour représenter des valeurs littérales. Valeurs écrites avec | ne doit pas être échappé. Par exemple, nous pouvons stocker Html en utilisant |.

template: |

This is a test paragraph

This is another paragraph

Q # 4) Quelle est la signification de… à la fin du fichier YAML.

Répondre: Trois périodes… sont des identifiants facultatifs. Ceux-ci peuvent être utilisés pour marquer la fin du document dans un flux.

Q # 5) Comment écrire des commentaires dans le fichier YAML?

Répondre: Nous utilisons # pour écrire un commentaire sur une seule ligne. YAML ne prend pas en charge les commentaires sur plusieurs lignes. Ainsi, nous devons utiliser # dans plusieurs lignes, comme indiqué ci-dessous.

# this is # a single line as well as multi-line # comment

Conclusion

Dans ce guide, nous avons couvert les étapes de préparation de l'environnement de développement sous Windows et Linux pour démarrer avec YAML. Nous avons presque discuté de tous les concepts des types de données de base de YAML, de l'éditeur YAML et de l'analyseur YAML.

Nous avons également souligné les avantages de l'utilisation de YAML par rapport à d'autres langages de balisage et fourni des exemples de code à l'aide d'un exemple de projet de support. Nous espérons que les apprenants pourront désormais utiliser YAML pour extraire des données de la logique d'application afin d'écrire du code efficace et maintenable.

Bon apprentissage!!

lecture recommandée

  • Tutoriel Python pour les débutants (formation pratique gratuite sur Python)
  • Processus d'introduction et d'installation de Python
  • Tutoriel Python Django - Premiers pas avec Django
  • Tutoriel Python DateTime avec des exemples
  • Tutoriel sur la gestion de fichiers Python: Comment créer, ouvrir, lire, écrire
  • Tutoriel TestComplete: Un guide complet de l'outil de test GUI pour les débutants
  • Instructions de contrôle Python (Python Continue, Break et Pass)
  • Concepts de POO Python (classes, objets et héritage Python)

Tag » Apprendre Yaml