Zum Fußzeileninhalt springen
PYTHON-HILFE

PyYAML (Wie es für Entwickler funktioniert)

PyYAML ist eine Python-Bibliothek, die als YAML-Parser und -Emitter funktioniert. YAML (YAML Ain’t Markup Language) ist ein menschenlesbares Datenserialisierungsformat, das sich gut in Python-Anwendungen integriert, großartige Fehlerunterstützung bietet, eine fähige Erweiterungs-API und mehr. YAML wird häufig für Konfigurationsdateien und Datenaustausch zwischen Sprachen mit unterschiedlichen Datenstrukturen verwendet, wobei die menschliche Lesbarkeit im Vordergrund steht. Later in this article, we will look into IronPDF, a PDF-generation Python package from Iron Software.

Hauptmerkmale von PyYAML

  1. Menschenlesbares Format: YAML ist so konzipiert, dass es einfach zu lesen und zu schreiben ist, was es ideal für komplexe Konfigurationsdateien und Datenserialisierung macht.
  2. Volle YAML 1.1 Unterstützung: PyYAML unterstützt die komplette YAML 1.1 Spezifikation, einschließlich Unicode-Unterstützung und benutzerdefinierter Datentypen.
  3. Integration mit Python: PyYAML bietet Python-spezifische Tags, die die Darstellung beliebiger Python-Objekte ermöglichen, was es vielseitig für verschiedene Anwendungen macht.
  4. Fehlerbehandlung: PyYAML bietet verständliche Fehlermeldungen, die beim Debuggen sehr hilfreich sein können.

Installation

Um das YAML-Paket zu installieren, können Sie pip verwenden:

pip install pyyaml
pip install pyyaml
SHELL

Grundlegende Verwendung

Hier ist ein einfaches Beispiel, wie man PyYAML verwendet, um ein YAML-Dokument in und aus einem beliebigen Python-Objekt zu laden und zu dumpen.

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

Ausgabe

PyYAML (How It Works For Developers): Figure 1

Erweiterte Funktionen

  1. Benutzerdefinierte Datentypen: PyYAML ermöglicht es Ihnen, benutzerdefinierte Konstruktoren und Repräsentanten für die Handhabung komplexer Datentypen im kanonischen YAML-Format zu definieren.
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

Ausgabe

PyYAML (How It Works For Developers): Figure 2

  1. Umgang mit großen Dateien: PyYAML kann mehrere YAML-Dokumente oder große YAML-Dateien effizient handhaben, indem streambasierter Ladevorgang und Dumping verwendet werden.
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

Ausgabe

PyYAML (How It Works For Developers): Figure 3

Einführung in IronPDF

PyYAML (How It Works For Developers): Figure 4

IronPDF ist eine leistungsstarke Python-Bibliothek, die zum Erstellen, Bearbeiten und Signieren von PDFs unter Verwendung von HTML, CSS, Bildern und JavaScript entwickelt wurde. Sie bietet eine kommerzielle Leistung mit geringem Speicherbedarf. Hauptmerkmale sind:

  • HTML-zu-PDF-Konvertierung: Konvertieren Sie HTML-Dateien, HTML-Strings und URLs in PDFs. Beispielsweise eine Webseite mithilfe des Chrome-PDF-Renderers als PDF rendern.

  • Plattformübergreifende Unterstützung: Kompatibel mit verschiedenen .NET-Plattformen, einschließlich .NET Core, .NET Standard und .NET Framework. Es unterstützt Windows, Linux und macOS.

  • Bearbeitung und Signierung: Setzen Sie Eigenschaften, fügen Sie Sicherheit mit Passwörtern und Berechtigungen hinzu und fügen Sie digitale Signaturen zu Ihren PDFs hinzu.

  • Seitenvorlagen und Einstellungen: Passen Sie PDFs mit Kopfzeilen, Fußzeilen, Seitennummern und anpassbaren Rändern an. IronPDF unterstützt responsive Layouts und benutzerdefinierte Papierformate.

  • Standardkonformität: IronPDF hält sich an PDF-Standards wie PDF/A und PDF/UA. Es unterstützt die UTF-8-Zeichenkodierung und verarbeitet Assets wie Bilder, CSS und Schriftarten.

PDF-Dokumente mit IronPDF und PyYAML erzeugen

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

Code Erklärung

  1. Imports:

    • Importiert notwendige Bibliotheken: yaml für YAML-Operationen, json für JSON-Operationen und ironpdf für die PDF-Erstellung.
  2. Lizenzschlüssel festlegen:

    • Legt den IronPDF-Lizenzschlüssel für rechtlichen und funktionalen Zugriff auf die Bibliothek fest.
  3. Beispieldaten in YAML:

    • Definiert Beispieldaten in YAML, um YAML-Operationen zu demonstrieren.
  4. YAML-Operationen:

    • Konvertiert YAML-Daten in Python-Objekte mit yaml.safe_load() zur Manipulation.
  5. Dumping in YAML:

    • Konvertiert Python-Objekte zurück in YAML-Format zur Ausgabe mit yaml.dump().
  6. Schreiben in Dateien:

    • Exportiert YAML-Daten in eine YAML-Datei und JSON-Daten in eine JSON-Datei zur Speicherung oder Übertragung.
  7. Lesen von JSON und Formatierung:

    • Liest JSON-Daten aus einer Datei und formatiert sie für die Lesbarkeit mit json.dumps().
  8. Erstellung von PDFs mit IronPDF:

    • Verwendet IronPDF, um einen HTML-String in ein PDF-Dokument zu rendern, inklusive eingebetteter YAML-Daten.
  9. Speichern des PDFs:

    • Speichert das erzeugte PDF im Dateisystem, um die programmgesteuerte PDF-Erstellung zu demonstrieren.

Ausgabe

PyYAML (How It Works For Developers): Figure 5

PDF

PyYAML (How It Works For Developers): Figure 6

IronPDF-Lizenz

IronPDF läuft mit dem Lizenzschlüssel für Python. IronPDF für Python bietet einen kostenlosen Testlizenzschlüssel, damit Benutzer seine umfangreichen Funktionen vor dem Kauf ausprobieren können.

Platzieren Sie den Lizenzschlüssel am Anfang des Skripts, bevor Sie das IronPDF-Paket verwenden:

from ironpdf import *

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

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

Abschluss

PyYAML ist eine leistungsstarke und flexible Bibliothek zur Arbeit mit YAML in Python. Das menschenlesbare Format, die volle YAML 1.1-Unterstützung und die Integration mit Python machen es zu einer ausgezeichneten Wahl für Konfigurationsdateien, Datenserialisierung und mehr. Egal, ob Sie es mit einfachen Konfigurationen oder komplexen Datenstrukturen zu tun haben, PyYAML bietet die Werkzeuge, die Sie benötigen, um YAML-Daten effektiv zu handhaben.

IronPDF ist ein Python-Paket, das die Umwandlung von HTML-Inhalten in PDF-Dokumente erleichtert. Es bietet eine einfache API (ChromePdfRenderer) für Entwickler, um hochwertige PDFs aus HTML zu generieren, einschließlich Unterstützung für moderne Webstandards wie CSS und JavaScript. Damit ist es ein effektives Werkzeug zur dynamischen Erstellung und Speicherung von PDF-Dokumenten direkt aus Python-Anwendungen.

Curtis Chau
Technischer Autor

Curtis Chau hat einen Bachelor-Abschluss in Informatik von der Carleton University und ist spezialisiert auf Frontend-Entwicklung mit Expertise in Node.js, TypeScript, JavaScript und React. Leidenschaftlich widmet er sich der Erstellung intuitiver und ästhetisch ansprechender Benutzerschnittstellen und arbeitet gerne mit modernen Frameworks sowie der Erstellung gut strukturierter, optisch ansprechender ...

Weiterlesen