Analyser un fichier YAML en Python

Ce didacticiel montrera différentes façons d’analyser un fichier YAML en Python.

YAML est une norme de sérialisation de données utilisée comme type de fichier pour stocker des fichiers de configuration ou de propriété dans un projet. YAML remplace souvent les fichiers de configuration XML ou JSON typiques car les fichiers sont plus faciles à sérialiser que ces deux types de fichiers.

Utilisez le package PyYAML pour analyser YAML en Python

pyyaml est un package Python qui fournit des utilitaires pour analyser et manipuler les fichiers YAML dans Python.

La première étape à faire est d’installer pyyaml en utilisant pip car il n’est pas facilement disponible pour Python.

pip install pyyaml 

Pour les utilisateurs de Python 3.x, utilisez pip3 au lieu de pip.

pip3 install pyyaml

Maintenant que l’installation est terminée, procédez à l’analyse d’un exemple de fichier YAML. Un fichier YAML aura toujours trois tirets --- au début du fichier pour indiquer le début d’un nouveau document YAML.

Notez que les espaces doivent être utilisés exclusivement lors de l’indentation des fichiers YAML car ces fichiers ne reconnaissent pas les espaces de tabulation comme des indentations.

Les fichiers YAML peuvent avoir une extension .yaml ou .yml.

  • sample.yaml
---
	name: "John"
	age: 23
	isMale: true
	hobbies:
		- swimming
		- fishing
		- diving

Pour lire le fichier YAML donné en Python, importez d’abord le module yaml. Ensuite, ouvrez le fichier yaml en utilisant la fonction open(). Le module yaml a une fonction prédéfinie load(), qui accepte un fichier comme argument, charge un fichier YAML en Python, et le convertit en un type de données objet Python.

import yaml

with open('sample.yaml', 'r') as f:
  print(yaml.load(f))

Si vous imprimez la sortie de yaml.load(), il affichera le contenu du fichier YAML dans un format d’objet Python.

Production:

{'name': 'John', 'age': 23, 'isMale': True, 'hobbies': ['swimming', 'fishing', 'diving']}

Pour nous assurer que le fichier YAML existe et n’est pas corrompu, sûr à utiliser, nous pouvons ajouter un bloc try et attraper l’exception en utilisant l’objet d’erreur intégré dans le module yaml YAMLError. Une autre couche pour rendre le code plus sûr à utiliser est de remplacer la fonction load() par safe_load(), qui valide le fichier YAML avant de le charger.

import yaml

with open("sample.yaml", 'r') as stream:
    try:
        print(yaml.safe_load(stream))
    except yaml.YAMLError as exc:
        print(exc)

Cette solution a le même résultat que la solution précédente, bien qu’il s’agisse d’une approche beaucoup plus sûre pour analyser un fichier YAML en Python.

En résumé, l’analyse d’un fichier YAML en Python est facilement réalisable en utilisant le module yaml. Assurez-vous d’exécuter pip install pyyaml avant d’utiliser le module car il n’est pas facilement intégré.

Il est toujours bon d’encapsuler les fonctions de manipulation de fichiers avec des blocs try-except pour s’assurer que la manipulation des fichiers se déroule sans problème et est sûre à effectuer.