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. Plus loin dans cet article, nous examinerons IronPDF, un package Python de génération de PDF de 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 des données.
  2. Prise en charge complète de YAML 1.1 : PyYAML prend en charge la spécification YAML 1.1 complète, y compris la prise en charge d'Unicode et des 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, ce qui le rend polyvalent pour diverses applications.
  4. Gestion des erreurs : PyYAML propose des messages d'erreur pertinents, qui peuvent s'avérer 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 cela fonctionne 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 représentants personnalisés pour gérer les 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 cela fonctionne pour les développeurs) : Figure 2

  1. Gestion des fichiers volumineux : PyYAML peut gérer efficacement plusieurs documents YAML ou de gros fichiers YAML en utilisant le chargement et le déchargement basés sur les 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 cela fonctionne pour les développeurs) : Figure 3

Présentation d'IronPDF

PyYAML (Comment cela fonctionne 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 vers PDF : Convertissez les fichiers HTML, les chaînes HTML et les URL en PDF. Par exemple, vous pouvez rendre une page web en PDF en utilisant le moteur de rendu Chrome PDF.

  • Prise en charge multiplateforme : Compatible avec diverses plateformes .NET , notamment .NET Core, .NET Standard et .NET Framework. Il prend en charge Windows, Linux et macOS.

  • Édition et signature : définissez les propriétés, ajoutez de la sécurité avec des mots de passe et des autorisations, et appliquez des signatures numériques à vos PDF.

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

  • Conformité aux normes : IronPDF respecte les normes PDF telles 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 using 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 à l'aide de yaml.safe_load() pour la manipulation.
  5. Déchargement vers YAML :

    • Convertit les objets Python de nouveau au 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 à partir d'un fichier et les formate pour une meilleure 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 cela fonctionne pour les développeurs) : Figure 5

PDF

PyYAML (Comment cela fonctionne pour les développeurs) : Figure 6

Licence IronPDF

IronPDF fonctionne sur la clé de licence for Python. IronPDF for 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

Iron Support Team

We're online 24 hours, 5 days a week.
Chat
Email
Call Me