PyYAML (Jak działa dla programistów)
PyYAML to biblioteka języka Python, która działa jako parser i emiter YAML. YAML (YAML Ain't Markup Language) to czytelny dla człowieka format serializacji danych, który dobrze integruje się z aplikacjami w języku Python, oferuje doskonałą obsługę błędów, rozbudowane API rozszerzeń i wiele więcej. YAML jest często używany do tworzenia plików konfiguracyjnych i wymiany danych między językami o różnych strukturach danych, z myślą o czytelności dla człowieka. W dalszej części tego artykułu przyjrzymy się IronPDF, pakietowi do generowania plików PDF w języku Python firmy Iron Software.
Kluczowe cechy PyYAML
- Format czytelny dla człowieka: YAML został zaprojektowany tak, aby był łatwy do odczytania i zapisu, co czyni go idealnym rozwiązaniem dla złożonych plików konfiguracyjnych i serializacji danych.
- Pełna obsługa YAML 1.1: PyYAML obsługuje pełną specyfikację YAML 1.1, w tym obsługę Unicode i niestandardowe typy danych.
- Integracja z Pythonem: PyYAML udostępnia tagi specyficzne dla języka Python, które umożliwiają reprezentację dowolnych obiektów Pythona, dzięki czemu jest wszechstronny w różnych zastosowaniach.
- Obsługa błędów: PyYAML oferuje sensowne komunikaty o błędach, które mogą być bardzo pomocne podczas debugowania.
Instalacja
Aby zainstalować pakiet YAML, można użyć pip:
pip install pyyamlpip install pyyamlPodstawowe zastosowanie
Oto prosty przykład wykorzystania PyYAML do ładowania i zapisywania dokumentu YAML do i z dowolnego obiektu w języku Python.
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)Wynik

Zaawansowane funkcje
- Niestandardowe typy danych: PyYAML pozwala definiować niestandardowe konstruktory i reprezentatory do obsługi złożonych typów danych w kanonicznym formacie YAML.
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)Wynik

- Obsługa dużych plików: PyYAML może efektywnie obsługiwać wiele dokumentów YAML lub duże pliki YAML, wykorzystując ładowanie i zrzut oparte na strumieniu.
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)Wynik
![]()
Przedstawiamy IronPDF

IronPDF to potężna biblioteka języka Python przeznaczona do tworzenia, edytowania i podpisywania plików PDF przy użyciu HTML, CSS, obrazów i JavaScript. Oferuje wydajność na poziomie komercyjnym przy niewielkim zużyciu pamięci. Najważniejsze cechy to:
Konwersja HTML do PDF: Konwertuj pliki HTML, ciągi znaków HTML i adresy URL na pliki PDF. Na przykład, renderuj stronę internetową jako plik PDF przy użyciu renderera PDF przeglądarki Chrome.
Obsługa wielu platform: Kompatybilność z różnymi platformami .NET, w tym .NET Core, .NET Standard i .NET Framework. Obsługuje systemy Windows, Linux i macOS.
Edycja i podpisywanie: Ustawiaj właściwości, dodawaj zabezpieczenia za pomocą haseł i uprawnień oraz stosuj podpisy cyfrowe w plikach PDF.
Szablony stron i ustawienia: Dostosuj pliki PDF za pomocą nagłówków, stopek, numerów stron i regulowanych marginesów. IronPDF obsługuje responsywne układy i niestandardowe rozmiary papieru.
- Zgodność ze standardami: IronPDF jest zgodny ze standardami PDF, takimi jak PDF/A i PDF/UA. Obsługuje kodowanie znaków UTF-8 oraz pliki takie jak obrazy, CSS i czcionki.
Generowanie dokumentów PDF przy użyciu IronPDF i 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")Wyjaśnienie kodu
Importy:
- Importuje niezbędne biblioteki:
yamldo operacji YAML,jsondo operacji JSON orazironpdfdo generowania plików PDF.
- Importuje niezbędne biblioteki:
Ustawianie klucza licencyjnego:
- Ustawia klucz licencyjny IronPDF w celu uzyskania legalnego i funkcjonalnego dostępu do biblioteki.
Przykładowe dane YAML:
- Definiuje przykładowe dane YAML w celu zademonstrowania operacji YAML.
Operacje YAML:
- Konwertuje dane YAML na obiekty Python przy użyciu
yaml.safe_load()do manipulacji.
- Konwertuje dane YAML na obiekty Python przy użyciu
Eksport do YAML:
- Konwertuje obiekty Python z powrotem do formatu YAML w celu wyświetlenia przy użyciu
yaml.dump().
- Konwertuje obiekty Python z powrotem do formatu YAML w celu wyświetlenia przy użyciu
Zapisywanie do plików:
- Eksportuje dane YAML do pliku YAML, a dane JSON do pliku JSON w celu przechowywania lub przesyłania.
Odczytywanie i formatowanie JSON:
- Odczytuje dane JSON z pliku i formatuje je w celu zapewnienia czytelności przy użyciu
json.dumps().
- Odczytuje dane JSON z pliku i formatuje je w celu zapewnienia czytelności przy użyciu
Generowanie plików PDF za pomocą IronPDF:
- Wykorzystuje IronPDF do renderowania ciągu znaków HTML do dokumentu PDF, w tym osadzonych danych YAML.
Zapisywanie plików PDF:
- Zapisuje wygenerowany plik PDF w systemie plików, demonstrując programowe tworzenie plików PDF.
Wynik


Licencja IronPDF
IronPDF działa na kluczu licencyjnym dla języka Python. IronPDF for Python oferuje bezplatną licencję probną, aby umożliwić użytkownikom zapoznanie się z jego rozbudowanymi funkcjami przed zakupem.
Umieść klucz licencyjny na początku skryptu przed użyciem pakietu IronPDF:
from ironpdf import *
# Apply your license key
License.LicenseKey = "key"from ironpdf import *
# Apply your license key
License.LicenseKey = "key"Wnioski
PyYAML to potężna i elastyczna biblioteka do pracy z YAML w języku Python. Jego format czytelny dla ludzi, pełna obsługa YAML 1.1 oraz integracja z Pythonem sprawiają, że jest to doskonały wybór do plików konfiguracyjnych, serializacji danych i nie tylko. Niezależnie od tego, czy masz do czynienia z prostymi konfiguracjami, czy złożonymi strukturami danych, PyYAML zapewnia narzędzia potrzebne do efektywnej obsługi danych YAML.
IronPDF to pakiet w języku Python, który ułatwia konwersję treści HTML do dokumentów PDF. Oferuje prosty interfejs API (ChromePdfRenderer), umożliwiający programistom generowanie wysokiej jakości plików PDF z HTML, w tym obsługę nowoczesnych standardów internetowych, takich jak CSS i JavaScript. Dzięki temu jest to skuteczne narzędzie do dynamicznego tworzenia i zapisywania dokumentów PDF bezpośrednio z aplikacji Python.










