Passer au contenu du pied de page
AIDE PYTHON

PyYAML (Comment ça marche pour les développeurs)

PyYAML est une bibliothèque Python qui fonctionne comme un analyseur et émetteur YAML. YAML (YAML Ain’t Markup Language), est un format de sérialisation de données lisible par l'homme qui s'intègre bien aux applications Python, dispose d'un excellent support des erreurs, offre une API d’extension capable, et plus encore. YAML est souvent utilisé pour les fichiers de configuration et l'échange de données entre des langages avec différentes structures de données, en gardant à l'esprit la lisibilité par l'homme. Later in this article, we will look into IronPDF, a PDF-generation Python package from Iron Software.

Principales caractéristiques de PyYAML

  1. Format lisible par l'homme : YAML est conçu pour être facile à lire et à écrire, ce qui le rend idéal pour les fichiers de configuration complexes et la sérialisation de données.
  2. Support complet de YAML 1.1 : PyYAML supporte la spécification complète de YAML 1.1, y compris le support Unicode et les types de données personnalisés.
  3. Intégration avec Python : PyYAML fournit des balises spécifiques à Python qui permettent la représentation d'objets Python arbitraires, le rendant polyvalent pour diverses applications.
  4. Gestion des erreurs : PyYAML offre des messages d'erreur compréhensibles, qui peuvent être très utiles lors du débogage.

Installation

Pour installer le package YAML, vous pouvez utiliser pip :

pip install pyyaml
pip install pyyaml
SHELL

Utilisation de base

Voici un exemple simple de la façon d'utiliser PyYAML pour charger et décharger un document YAML depuis et vers un objet Python arbitraire.

import yaml

# Sample YAML data
yaml_data = """
name: John Doe
age: 30
children:
  - name: Jane Doe
    age: 10
  - name: Jim Doe
    age: 8
"""

# Load YAML data into a Python dictionary
data = yaml.safe_load(yaml_data)
print(data)

# Dump Python data back to formatted YAML
yaml_output = yaml.dump(data, default_flow_style=False)
print(yaml_output)
import yaml

# Sample YAML data
yaml_data = """
name: John Doe
age: 30
children:
  - name: Jane Doe
    age: 10
  - name: Jim Doe
    age: 8
"""

# Load YAML data into a Python dictionary
data = yaml.safe_load(yaml_data)
print(data)

# Dump Python data back to formatted YAML
yaml_output = yaml.dump(data, default_flow_style=False)
print(yaml_output)
PYTHON

Sortie

PyYAML (Comment ça marche pour les développeurs) : Figure 1

Les fonctionnalités avancées

  1. Types de données personnalisés : PyYAML vous permet de définir des constructeurs et des réprésentants personnalisés pour gérer des types de données complexes pour le format YAML canonique.
import yaml

# Define a custom Python object
class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

# Function to convert a Person object to a YAML representation
def person_representer(dumper, data):
    return dumper.represent_mapping('!Person', {'name': data.name, 'age': data.age})

# Function to create a Person object from YAML representation
def person_constructor(loader, node):
    values = loader.construct_mapping(node)
    return Person(**values)

# Register custom representer and constructor for Person
yaml.add_representer(Person, person_representer)
yaml.add_constructor('!Person', person_constructor)

# Object Serialization
person = Person(name='John Doe', age=30)
yaml_data = yaml.dump(person)
print(yaml_data)

# Deserialize YAML to a Person object
loaded_person = yaml.load(yaml_data, Loader=yaml.FullLoader)
print(loaded_person.name, loaded_person.age)
import yaml

# Define a custom Python object
class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

# Function to convert a Person object to a YAML representation
def person_representer(dumper, data):
    return dumper.represent_mapping('!Person', {'name': data.name, 'age': data.age})

# Function to create a Person object from YAML representation
def person_constructor(loader, node):
    values = loader.construct_mapping(node)
    return Person(**values)

# Register custom representer and constructor for Person
yaml.add_representer(Person, person_representer)
yaml.add_constructor('!Person', person_constructor)

# Object Serialization
person = Person(name='John Doe', age=30)
yaml_data = yaml.dump(person)
print(yaml_data)

# Deserialize YAML to a Person object
loaded_person = yaml.load(yaml_data, Loader=yaml.FullLoader)
print(loaded_person.name, loaded_person.age)
PYTHON

Sortie

PyYAML (Comment ça marche pour les développeurs) : Figure 2

  1. Gestion de grands fichiers : PyYAML peut gérer plusieurs documents YAML ou de grands fichiers YAML efficacement en utilisant le chargement et le déchargement basés sur le flux.
import yaml

# Load a large YAML file
with open('large_file.yaml', 'r') as file:
    data = yaml.safe_load(file)

# Dump data to a large YAML file
with open('output_file.yaml', 'w') as file:
    yaml.dump(data, file)
import yaml

# Load a large YAML file
with open('large_file.yaml', 'r') as file:
    data = yaml.safe_load(file)

# Dump data to a large YAML file
with open('output_file.yaml', 'w') as file:
    yaml.dump(data, file)
PYTHON

Sortie

PyYAML (Comment ça marche pour les développeurs) : Figure 3

Présentation d'IronPDF

PyYAML (Comment ça marche pour les développeurs) : Figure 4

IronPDF est une bibliothèque Python puissante conçue pour créer, éditer, et signer des PDFs en utilisant HTML, CSS, des images, et JavaScript. Elle offre des performances de qualité commerciale avec une empreinte mémoire faible. Les fonctionnalités clés incluent :

  • Conversion HTML en PDF : Convertir des fichiers HTML, des chaînes HTML et des URL en PDFs. Par exemple, vous pouvez rendre une page web en PDF en utilisant le moteur de rendu Chrome PDF.

  • Support multi-plateforme : Compatible avec différentes plateformes .NET, y compris .NET Core, .NET Standard, et .NET Framework. Il prend en charge Windows, Linux et macOS.

  • Édition et signature : Définir des propriétés, ajouter de la sécurité avec des mots de passe et des permissions, et appliquer des signatures numériques à vos PDFs.

  • Modèles et paramètres de page : Personnaliser les PDFs avec des en-têtes, des pieds de page, des numéros de pages, et des marges ajustables. IronPDF supporte les dispositions réactives et les tailles de papier personnalisées.

  • Conformité aux standards : IronPDF respecte les standards PDF tels que PDF/A et PDF/UA. Il prend en charge l'encodage de caractères UTF-8 et gère les actifs comme les images, CSS et polices.

Générer des documents PDF en utilisant IronPDF et PyYAML

import yaml
import json
from ironpdf import *

# Apply your license key
License.LicenseKey = "your license"

# Sample YAML data
yaml_data = """
name: IronPDF User1
age: 25
children:
  - name: IronPDF User2
    age: 23
  - name: IronPDF User3
    age: 24
"""

# Load YAML data into Python structures
data = yaml.safe_load(yaml_data)
print(data)

# Dump Python data back to YAML
yaml_output = yaml.dump(data, default_flow_style=False)
print(yaml_output)

# Write YAML to File
with open('output_file.yaml', 'w') as file:
    yaml.dump(yaml_output, file)

# Write YAML data as JSON
with open('output_file.json', 'w') as json_file:
    json.dump(data, json_file)

# Read JSON and format with indentation for readability
output = json.dumps(json.load(open('output_file.json')), indent=2)
print(output)

# Create PDF renderer
renderer = ChromePdfRenderer()

# Create a PDF from HTML containing YAML data
content = "<h1>Awesome Iron PDF with PyYAML</h1>"
content += "<p>YAML data: " + yaml_output + "</p>"
pdf = renderer.RenderHtmlAsPdf(content)

# Save the PDF document to a file
pdf.SaveAs("awesome.pdf")
import yaml
import json
from ironpdf import *

# Apply your license key
License.LicenseKey = "your license"

# Sample YAML data
yaml_data = """
name: IronPDF User1
age: 25
children:
  - name: IronPDF User2
    age: 23
  - name: IronPDF User3
    age: 24
"""

# Load YAML data into Python structures
data = yaml.safe_load(yaml_data)
print(data)

# Dump Python data back to YAML
yaml_output = yaml.dump(data, default_flow_style=False)
print(yaml_output)

# Write YAML to File
with open('output_file.yaml', 'w') as file:
    yaml.dump(yaml_output, file)

# Write YAML data as JSON
with open('output_file.json', 'w') as json_file:
    json.dump(data, json_file)

# Read JSON and format with indentation for readability
output = json.dumps(json.load(open('output_file.json')), indent=2)
print(output)

# Create PDF renderer
renderer = ChromePdfRenderer()

# Create a PDF from HTML containing YAML data
content = "<h1>Awesome Iron PDF with PyYAML</h1>"
content += "<p>YAML data: " + yaml_output + "</p>"
pdf = renderer.RenderHtmlAsPdf(content)

# Save the PDF document to a file
pdf.SaveAs("awesome.pdf")
PYTHON

Explication du Code

  1. Imports :

    • Importe les bibliothèques nécessaires : yaml pour les opérations YAML, json pour les opérations JSON, et ironpdf pour la génération de PDF.
  2. Définition de la clé de licence :

    • Définit la clé de licence IronPDF pour un accès légal et fonctionnel à la bibliothèque.
  3. Données YAML d'exemple :

    • Définit des données YAML d'exemple pour démontrer les opérations YAML.
  4. Opérations YAML :

    • Convertit les données YAML en objets Python pour la manipulation en utilisant yaml.safe_load().
  5. Déchargement vers YAML :

    • Convertit les objets Python en format YAML pour la sortie en utilisant yaml.dump().
  6. Écriture dans des fichiers :

    • Exporte les données YAML vers un fichier YAML et les données JSON vers un fichier JSON pour le stockage ou la transmission.
  7. Lecture et formatage JSON :

    • Lit les données JSON d’un fichier et les formatte pour la lisibilité en utilisant json.dumps().
  8. Génération de PDF avec IronPDF :

    • Utilise IronPDF pour rendre une chaîne HTML dans un document PDF, incluant des données YAML intégrées.
  9. Enregistrement du PDF :

    • Sauvegarde le PDF généré dans le système de fichiers, démontrant la création programmée de PDF.

Sortie

PyYAML (Comment ça marche pour les développeurs) : Figure 5

PDF

PyYAML (Comment ça marche pour les développeurs) : Figure 6

Licence IronPDF

IronPDF fonctionne sur la clé de licence pour Python. IronPDF pour Python offre une clé de licence d’essai gratuite pour permettre aux utilisateurs de découvrir ses fonctionnalités étendues avant l'achat.

Placez la clé de licence au début du script avant d'utiliser le package IronPDF :

from ironpdf import *

# Apply your license key
License.LicenseKey = "key"
from ironpdf import *

# Apply your license key
License.LicenseKey = "key"
PYTHON

Conclusion

PyYAML est une bibliothèque puissante et flexible pour travailler avec YAML en Python. Son format lisible par l'homme, son support complet de YAML 1.1, et son intégration avec Python en font un excellent choix pour les fichiers de configuration, la sérialisation de données et plus encore. Que vous traitiez des configurations simples ou des structures de données complexes, PyYAML fournit les outils dont vous avez besoin pour gérer efficacement les données YAML.

IronPDF est un package Python qui facilite la conversion de contenu HTML en documents PDF. Il offre une API simple d'utilisation (ChromePdfRenderer) pour les développeurs afin de générer des PDFs de haute qualité à partir de HTML, y compris le support des standards web modernes comme CSS et JavaScript. Cela en fait un outil efficace pour créer et enregistrer dynamiquement des documents PDF directement depuis des applications Python.

Curtis Chau
Rédacteur technique

Curtis Chau détient un baccalauréat en informatique (Université de Carleton) et se spécialise dans le développement front-end avec expertise en Node.js, TypeScript, JavaScript et React. Passionné par la création d'interfaces utilisateur intuitives et esthétiquement plaisantes, Curtis aime travailler avec des frameworks modernes ...

Lire la suite