Ir para o conteúdo do rodapé
AJUDA DO PYTHON

PyYAML (Como funciona para desenvolvedores)

PyYAML é uma biblioteca Python que funciona como um analisador e emissor de YAML. YAML (YAML Ain't Markup Language) é um formato de serialização de dados legível por humanos que se integra bem com aplicações Python, oferece excelente suporte a erros, uma API de extensão robusta e muito mais. O YAML é frequentemente usado para arquivos de configuração e troca de dados entre linguagens com estruturas de dados diferentes, visando a legibilidade humana. Mais adiante neste artigo, analisaremos o IronPDF , um pacote Python para geração de PDFs da Iron Software .

Principais características do PyYAML

  1. Formato legível por humanos: O YAML foi projetado para ser fácil de ler e escrever, tornando-o ideal para arquivos de configuração complexos e serialização de dados.
  2. Suporte completo ao YAML 1.1: O PyYAML oferece suporte à especificação completa do YAML 1.1, incluindo suporte a Unicode e tipos de dados personalizados.
  3. Integração com Python: O PyYAML fornece tags específicas do Python que permitem a representação de objetos Python arbitrários, tornando-o versátil para diversas aplicações.
  4. Tratamento de erros: O PyYAML oferece mensagens de erro claras, que podem ser muito úteis durante a depuração.

Instalação

Para instalar o pacote YAML, você pode usar o pip:

pip install pyyaml
pip install pyyaml
SHELL

Uso básico

Aqui está um exemplo simples de como usar o PyYAML para carregar e exportar um documento YAML de e para um objeto Python arbitrário.

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

Saída

PyYAML (Como funciona para desenvolvedores): Figura 1

Recursos avançados

  1. Tipos de dados personalizados: PyYAML permite definir construtores e representadores personalizados para lidar com tipos de dados complexos no formato YAML canônico.
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

Saída

PyYAML (Como funciona para desenvolvedores): Figura 2

  1. Manipulação de Arquivos Grandes: O PyYAML consegue lidar com múltiplos documentos YAML ou arquivos YAML grandes de forma eficiente, utilizando carregamento e descarregamento baseados em fluxo.
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

Saída

PyYAML (Como funciona para desenvolvedores): Figura 3

Apresentando o IronPDF

PyYAML (Como funciona para desenvolvedores): Figura 4

IronPDF é uma poderosa biblioteca Python projetada para criar, editar e assinar PDFs usando HTML, CSS, imagens e JavaScript. Oferece desempenho de nível comercial com baixo consumo de memória. As principais características incluem:

  • Conversão de HTML para PDF: Converta arquivos HTML, strings HTML e URLs em PDFs. Por exemplo, renderize uma página da web como um PDF usando o renderizador de PDF do Chrome.

  • Suporte multiplataforma: Compatível com várias plataformas .NET , incluindo .NET Core, .NET Standard e .NET Framework. É compatível com Windows, Linux e macOS.

  • Edição e assinatura: Defina propriedades, adicione segurança com senhas e permissões e aplique assinaturas digitais aos seus PDFs.

  • Modelos e configurações de página: personalize PDFs com cabeçalhos, rodapés, números de página e margens ajustáveis. O IronPDF suporta layouts responsivos e tamanhos de papel personalizados.

  • Conformidade com os padrões: O IronPDF está em conformidade com os padrões PDF, como PDF/A e PDF/UA. Suporta codificação de caracteres UTF-8 e lida com recursos como imagens, CSS e fontes.

Gere documentos PDF usando IronPDF e 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

Explicação do código

  1. Importações:

    • Importa as bibliotecas necessárias: yaml para operações YAML, json para operações JSON e ironpdf para geração de PDF.
  2. Configurar a chave de licença:

    • Define a chave de licença do IronPDF para acesso legal e funcional à biblioteca.
  3. Dados YAML de exemplo:

    • Define dados YAML de exemplo para demonstrar operações YAML.
  4. Operações YAML:

    • Converte dados YAML em objetos Python usando yaml.safe_load() para manipulação.
  5. Exportando para YAML:

    • Converte objetos Python de volta para o formato YAML para saída usando yaml.dump().
  6. Gravação em arquivos:

    • Exporta dados YAML para um arquivo YAML e dados JSON para um arquivo JSON para armazenamento ou transmissão.
  7. Leitura e formatação de JSON:

    • Lê dados JSON de um arquivo e os formata para facilitar a leitura usando json.dumps().
  8. Gerando PDF com o IronPDF:

    • Utiliza o IronPDF para renderizar uma string HTML em um documento PDF, incluindo dados YAML incorporados.
  9. Salvar PDF:

    • Salva o PDF gerado no sistema de arquivos, demonstrando a criação programática de PDFs.

Saída

PyYAML (Como funciona para desenvolvedores): Figura 5

PDF

PyYAML (Como funciona para desenvolvedores): Figura 6

Licença IronPDF

O IronPDF funciona com a chave de licença do Python. O IronPDF for Python oferece uma chave de licença de avaliação gratuita para permitir que os usuários experimentem seus diversos recursos antes de comprar.

Insira a chave de licença no início do script antes de usar o pacote IronPDF :

from ironpdf import *

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

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

Conclusão

PyYAML é uma biblioteca poderosa e flexível para trabalhar com YAML em Python. Seu formato legível por humanos, suporte completo ao YAML 1.1 e integração com Python fazem dele uma excelente escolha para arquivos de configuração, serialização de dados e muito mais. Quer você esteja lidando com configurações simples ou estruturas de dados complexas, o PyYAML fornece as ferramentas necessárias para manipular dados YAML de forma eficaz.

IronPDF é um pacote Python que facilita a conversão de conteúdo HTML em documentos PDF. Oferece uma API simples (ChromePdfRenderer) para que os desenvolvedores gerem PDFs de alta qualidade a partir de HTML, incluindo suporte para padrões web modernos como CSS e JavaScript. Isso a torna uma ferramenta eficaz para criar e salvar documentos PDF dinamicamente diretamente de aplicativos Python.

Curtis Chau
Redator Técnico

Curtis Chau é bacharel em Ciência da Computação (Universidade Carleton) e se especializa em desenvolvimento front-end, com experiência em Node.js, TypeScript, JavaScript e React. Apaixonado por criar interfaces de usuário intuitivas e esteticamente agradáveis, Curtis gosta de trabalhar com frameworks modernos e criar manuais ...

Leia mais

Equipe de suporte de ferro

Estamos online 24 horas por dia, 5 dias por semana.
Bater papo
E-mail
Liga para mim