AYUDA DE PYTHON

PyYAML (Cómo funciona para desarrolladores)

Actualizado agosto 13, 2024
Compartir:

Introducción

PyYAML es una biblioteca de Python que funciona como analizador y emisor de YAML. YAML (YAML no es un lenguaje de marcado)es un formato de serialización de datos legible por humanos que se integra bien con las aplicaciones Python, cuenta con un gran soporte de errores, una API de extensión capaz y mucho más. YAML se utiliza a menudo para archivos de configuración e intercambio de datos entre lenguajes con diferentes estructuras de datos, teniendo en cuenta la legibilidad humana. Más adelante en este artículo analizaremos IronPDFun paquete Python de generación de PDF de IronSoftware.

Principales características de PyYAML

  1. Formato legible por humanos: YAML está diseñado para ser fácil de leer y escribir, por lo que es ideal para archivos de configuración complejos y serialización de datos.

  2. Soporte completo de YAML 1.1: PyYAML soporta la especificación completa YAML 1.1, incluyendo soporte Unicode y tipos de datos personalizados.

  3. Integración con Python: PyYAML proporciona etiquetas específicas de Python que permiten representar objetos arbitrarios de Python, lo que lo hace versátil para diversas aplicaciones.

  4. Manejo de errores: PyYAML ofrece mensajes de error sensibles, que pueden ser muy útiles durante la depuración.

Instalación

Para instalar el paquete YAML, puede utilizar pip:

pip install pyyaml
pip install pyyaml
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

Uso básico

Aquí tienes un ejemplo sencillo de cómo usar PyYAML para cargar y volcar un documento YAML desde y hacia un objeto Python arbitrario.

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
data = yaml.safe_load(yaml_data)
print(data)
# Dump Python data to 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
data = yaml.safe_load(yaml_data)
print(data)
# Dump Python data to YAML
yaml_output = yaml.dump(data, default_flow_style=False)
print(yaml_output)
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

Salida

PyYAML (Cómo funciona para los desarrolladores): Figura 1

Funciones avanzadas

  1. Tipos de datos personalizados: PyYAML permite definir constructores y representadores personalizados para manejar tipos de datos complejos para el formato canónico YAML.
import yaml
class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age
def person_representer(dumper, data):
    return dumper.represent_mapping('!Person', {'name': data.name, 'age': data.age})
def person_constructor(loader, node):
    values = loader.construct_mapping(node)
    return Person(**values)
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
class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age
def person_representer(dumper, data):
    return dumper.represent_mapping('!Person', {'name': data.name, 'age': data.age})
def person_constructor(loader, node):
    values = loader.construct_mapping(node)
    return Person(**values)
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)
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

Salida

PyYAML (Cómo funciona para desarrolladores): Figura 2

  1. Manejo de ficheros grandes: PyYAML puede manejar múltiples documentos yaml o grandes ficheros YAML de forma eficiente usando carga y volcado basados en flujos.
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)
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

Salida

PyYAML (Cómo funciona para desarrolladores): Figura 3

Presentación de IronPDF

PyYAML (Cómo funciona para desarrolladores): Figura 4

IronPDF es una potente biblioteca de Python diseñada para crear, editar y firmar PDF utilizando HTML, CSS, imágenes y JavaScript. Ofrece un rendimiento de nivel comercial con un bajo consumo de memoria. Las características clave incluyen:

Conversión de HTML a PDF

Convierta archivos HTML, cadenas HTML y URL en PDF. Por ejemplo, renderiza una página web como PDF utilizando el renderizador de PDF de Chrome.

Soporte multiplataforma

Compatible con varias plataformas .NET, incluidas .NET Core, .NET Standard y .NET Framework. Es compatible con Windows, Linux y macOS.

Edición y firma

Establezca propiedades, añada seguridad con contraseñas y permisos, y aplique firmas digitales a sus PDF.

Plantillas de página y configuración

Personalice los PDF con encabezados, pies de página, números de página y márgenes ajustables. IronPDF admite diseños adaptables y tamaños de papel personalizados.

Cumplimiento de las normas

IronPDF cumple estándares PDF como PDF/A y PDF/UA. Admite la codificación de caracteres UTF-8 y gestiona activos como imágenes, CSS y fuentes.

Generar documentos PDF con IronPDF y PyYaml

import yaml
import json
from ironpdf import * 
# Apply your license key
License.LicenseKey = "your license"
# Sample YAML data with standard yaml tags
yaml_data = """
name: IronPDF User1
age: 25
children:
  - name: IronPDF User2
    age: 23
  - name: IronPDF User3
    age: 24
"""
# Load YAML data to only basic python objects
data = yaml.safe_load(yaml_data)
print(data)
# Dump Python data 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 as JSON
with open('output_file.json', 'w') as json_file:
    json.dump(yaml_output, json_file)
# Read Json and Indent
output = json.dumps(json.load(open('output_file.json')), indent=2)
print(output)
# create Renderer
renderer = ChromePdfRenderer()
# Create a PDF from a HTML string using Python
content = "<h1>Awesome Iron PDF with PYYML</h1>"
content += "<p>YAML data: "+ yaml_data +"</p>"
pdf = renderer.RenderHtmlAsPdf(content)    
    # Export to a file or Stream
pdf.SaveAs("awesome.pdf")
import yaml
import json
from ironpdf import * 
# Apply your license key
License.LicenseKey = "your license"
# Sample YAML data with standard yaml tags
yaml_data = """
name: IronPDF User1
age: 25
children:
  - name: IronPDF User2
    age: 23
  - name: IronPDF User3
    age: 24
"""
# Load YAML data to only basic python objects
data = yaml.safe_load(yaml_data)
print(data)
# Dump Python data 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 as JSON
with open('output_file.json', 'w') as json_file:
    json.dump(yaml_output, json_file)
# Read Json and Indent
output = json.dumps(json.load(open('output_file.json')), indent=2)
print(output)
# create Renderer
renderer = ChromePdfRenderer()
# Create a PDF from a HTML string using Python
content = "<h1>Awesome Iron PDF with PYYML</h1>"
content += "<p>YAML data: "+ yaml_data +"</p>"
pdf = renderer.RenderHtmlAsPdf(content)    
    # Export to a file or Stream
pdf.SaveAs("awesome.pdf")
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

Código Explicación

  1. Importaciones:

    • El script comienza importando las librerías y módulos de Python necesarios: yaml, json y ironpdf. Estas bibliotecas se utilizan para manejar los formatos de datos YAML y JSON, así como para la generación de PDF mediante IronPDF.
    1. Setting License Key:
    • Hay un paso para establecer una clave de licencia (License.LicenseKey = "su licencia") para IronPDF. Esto es crucial para utilizar la biblioteca IronPDF de forma legal y eficaz.
  2. Muestra de datos YAML:

    • Define un ejemplo de cadena con formato YAML (yaml_data) que contiene información sobre una persona hipotética y sus hijos. Estos datos sirven de ejemplo para demostrar el procesamiento de YAML.
  3. Operaciones YAML:

    • El script carga los datos YAML utilizando yaml.safe_load() para convertirlo en estructuras de datos Python. Esto permite al script manipular y trabajar con los datos mediante programación.
    1. Dumping to YAML:
    • Convierte estructuras de datos de Python a formato YAML utilizando yaml.dump(). Esto demuestra cómo serializar objetos Python en formato YAML para su almacenamiento o transmisión.
  4. Escribir en archivos:

    • Escribe los datos YAML en un archivo (archivo_salida.yaml) usando yaml.dump(). Del mismo modo, convierte los datos YAML en formato JSON y los escribe en otro archivo (archivo_salida.json) usando json.dump().
  5. Lectura de JSON y formateo:

    • Esta operación lee los datos JSON de archivo_salida.json, los analiza y los formatea con una sangría de 2 espacios utilizando json.dumps(). Esta operación ilustra cómo leer y formatear datos JSON para una mejor legibilidad o procesamiento posterior.
  6. Generación de PDF con IronPDF:

    • Utiliza IronPDF (Renderizador de PDF cromado()) para convertir una cadena de contenido HTML en un documento PDF. El contenido HTML incluye los datos YAML originales incrustados como parte del contenido del documento.
  7. Guardar PDF:

    • Este último paso guarda el documento PDF generado (impresionante.pdf) al sistema de archivos utilizando pdf.SaveAs(). Demuestra cómo crear y guardar documentos PDF mediante programación.

Salida

PyYAML (Cómo funciona para desarrolladores): Figura 5

PDF

PyYAML (Cómo funciona para desarrolladores): Figura 6

Licencia IronPDF

IronPDF funciona con la clave de licencia para Python. IronPDF for Python ofrece un prueba gratuita para que los usuarios puedan comprobar sus amplias funciones antes de comprarlo.

Coloque la clave de licencia al inicio del script antes de utilizar el paquete IronPDF:

from ironpdf import * 
# Apply your license key
License.LicenseKey = "key"
from ironpdf import * 
# Apply your license key
License.LicenseKey = "key"
IRON VB CONVERTER ERROR developers@ironsoftware.com
VB   C#

Conclusión

PyYAML es una biblioteca potente y flexible para trabajar con YAML en Python. Su formato legible por humanos, su compatibilidad total con YAML 1.1 y su integración con Python lo convierten en una opción excelente para archivos de configuración, serialización de datos y mucho más. Tanto si se trata de configuraciones sencillas como de estructuras de datos complejas, PyYAML proporciona las herramientas necesarias para manejar datos YAML de forma eficaz.

IronPDF es un paquete de Python que facilita la conversión de contenidos HTML en documentos PDF. Ofrece una API sencilla (ChromePdfRenderer) para que los desarrolladores generen PDF de alta calidad a partir de HTML, incluida la compatibilidad con estándares web modernos como CSS y JavaScript. Esto la convierte en una herramienta eficaz para crear y guardar dinámicamente documentos PDF directamente desde aplicaciones Python.

SIGUIENTE >
sqlite utils Python (Cómo funciona para desarrolladores)

¿Listo para empezar? Versión: 2024.8 acaba de salir

Instalación pip gratuita View Licenses >