Guide complet sur YAML en Python pour les débutants

serialisation yaml python

YAML (YAML Ain’t Markup Language) est un format de sérialisation des données lisible par l’homme, souvent utilisé comme alternative à d’autres formats tels que JSON ou XML. Son design minimaliste et sa syntaxe intuitive en font un excellent choix pour stocker des configurations, des données structurées.
Dans cet article, nous allons explorer l’utilisation de YAML en Python, de sa lecture et son écriture à ses cas d’utilisation.

Pourquoi utiliser YAML en Python ?

Il existe plusieurs raisons pour lesquelles vous pourriez vouloir utiliser YAML en Python :

  1. Configuration : YAML est souvent utilisé pour stocker les paramètres de configuration d’une application, car il est facile à lire et à modifier manuellement.
  2. Sérialisation de données : YAML peut être utilisé pour sérialiser et désérialiser des structures de données Python complexes, comme des listes imbriquées ou des dictionnaires.
  3. Lisibilité : Grâce à sa syntaxe basée sur des espaces et à sa structure hiérarchique claire, les fichiers YAML sont plus lisibles que d’autres formats comme JSON ou XML.
  4. Compatibilité avec de nombreux langages : YAML est pris en charge par de nombreux langages de programmation, ce qui en fait un choix idéal pour le stockage et l’échange de données entre différentes parties d’une application.

Travailler avec YAML et Python

Installer YAML à l’aide de pip :

pip install pyyaml

Une fois installé, vous pouvez importer les fonctions nécessaires à partir du module yaml

import yaml

Lire un fichier YAML

Pour lire les données à partir d’un fichier YAML, vous pouvez utiliser la fonction yaml.safe_load() :

with open('config.yaml', 'r') as file:
    config = yaml.safe_load(file)

Cette fonction analyse le contenu du fichier YAML et le convertit en un objet Python correspondant (généralement un dictionnaire ou une liste).

Écrire dans un fichier YAML

Pour écrire des données dans un fichier YAML, vous pouvez utiliser la fonction yaml.dump() :

data = {
    'name': 'John Doe',
    'age': 32,
    'skills': ['Python', 'JavaScript', 'SQL']
}

with open('data.yaml', 'w') as file:
    yaml.dump(data, file)

Cette fonction convertit l’objet Python (dans cet exemple, un dictionnaire) en une représentation YAML et l’écrit dans le fichier spécifié.

Exemple d’utilisation : Configuration d’une application

Un cas d’utilisation courant de YAML en Python est le stockage des paramètres de configuration d’une application. Voici un exemple de fichier de configuration YAML (config.yaml) :

database:
    host: localhost
    port: 5432
    user: myapp
    password: secret

logging:
    level: INFO
    file: /var/log/myapp.log

options:
    auto_restart: true
    max_connections: 100

Vous pouvez ensuite lire ces paramètres dans votre code Python :

import yaml

with open('config.yaml', 'r') as file:
    config = yaml.safe_load(file)

# Accéder aux paramètres de configuration
db_host = config['database']['host']
log_level = config['logging']['level']
auto_restart = config['options']['auto_restart']

Lire aussi :