Altbilgi içeriğine atla
PYTHON YARDıM

PyYAML (Geliştiriciler İçin Nasıl Çalışir)

PyYAML, bir YAML analizcisi ve yayımlayıcı işlevi gören bir Python kütüphanesidir. YAML (YAML Ain't Markup Language), Python uygulamaları ile iyi entegre olan, insan tarafından okunabilir bir veri serileştirme formatıdır, harika hata desteği, yetenekli bir genişletme API'si ve daha fazlasına sahiptir. YAML genellikle yapılandırma dosyaları ve farklı veri yapıları olan diller arasında veri değişimi için kullanılır, insan okunabilirliği ön planda tutularak. Bu makalenin ilerleyen kısımlarında IronPDF'e, Iron Software'den bir PDF oluşturma Python paketine bakacağız.

PyYAML Ana Özellikleri

  1. İnsan-Okunaklı Biçim: YAML okunması ve yazılması kolay olacak şekilde tasarlanmıştır, karmaşık yapılandırma dosyaları ve veri serileştirme için idealdir.
  2. Tam YAML 1.1 Desteği: PyYAML, Unicode desteği ve özel veri türleri dahil olmak üzere tam YAML 1.1 spesifikasyonunu destekler.
  3. Python ile Entegrasyon: PyYAML, rastgele Python nesnelerinin temsilini sağlayan Python'a özgü etiketler sunar, bu da onu çeşitli uygulamalar için çok yönlü hale getirir.
  4. Hata Yönetimi: PyYAML, hata ayıklama sırasında çok yardımcı olabilecek anlamlı hata mesajları sunar.

Kurulum

YAML paketini kurmak için pip kullanabilirsiniz:

pip install pyyaml
pip install pyyaml
SHELL

Temel Kullanım

İşte PyYAML kullanarak bir YAML belgesini rastgele bir Python nesnesinden yüklemenin ve dökmenin basit bir örneği.

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

Çıktı

PyYAML (Geliştiriciler İçin Nasıl Çalışır): Şekil 1

Gelişmiş Özellikler

  1. Özel Veri Türleri: PyYAML, düzenli YAML formatı için karmaşık veri türlerini işlemek için özel yapıcılar ve temsilciler tanımlamanıza olanak tanır.
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

Çıktı

PyYAML (Geliştiriciler İçin Nasıl Çalışır): Şekil 2

  1. Büyük Dosyaları İdare Etme: PyYAML, akış tabanlı yükleme ve boşaltma kullanarak birden fazla YAML belgesini veya büyük YAML dosyalarını etkili bir şekilde idare edebilir.
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

Çıktı

PyYAML (Geliştiriciler İçin Nasıl Çalışır): Şekil 3

IronPDF Tanıtımı

PyYAML (Geliştiriciler İçin Nasıl Çalışır): Şekil 4

IronPDF, HTML, CSS, resimler ve JavaScript kullanarak PDF'ler oluşturmak, düzenlemek ve imzalamak için tasarlanmış güçlü bir Python kütüphanesidir. Düşük bellek kullanımıyla ticari düzeyde performans sunar. Önemli özellikler şunları içerir:

  • HTML'den PDF'ye Dönüştürme: HTML dosyalarını, HTML dizelerini ve URL'leri PDF'lere dönüştürün. Örneğin, bir web sayfasını Chrome PDF render edici kullanarak PDF olarak işleyin.

  • Çapraz Platform Desteği: .NET Core, .NET Standard ve .NET Framework dahil çeşitli .NET platformları ile uyumlu. Windows, Linux ve macOS'u destekler.

  • Düzenleme ve İmza Atma: Özellik ayarlayın, parolalar ve izinlerle güvenlik ekleyin ve PDF'lerinize dijital imzalar ekleyin.

  • Sayfa Şablonları ve Ayarlamalar: Başlıklar, altlıklar, sayfa numaraları ve ayarlanabilir kenar boşlukları ile PDF'leri kişiselleştirin. IronPDF, duyarlı düzenler ve özel kağıt boyutları destekler.

  • Standartlarla Uyum: IronPDF, PDF/A ve PDF/UA gibi PDF standartlarına uygundur. UTF-8 karakter kodlamasını destekler ve resimler, CSS ve yazı tipleri gibi varlıklarla ilgilenir.

IronPDF ve PyYAML Kullanarak PDF Belgeleri Üretme

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

Kod Açıklaması

  1. İçeri Aktarmalar:

    • Gerekli kütüphaneler ithal edilir: YAML işlemleri için yaml, JSON işlemleri için json, ve PDF oluşturma için ironpdf.
  2. Lisans Anahtarı Ayarlama:

    • Kütüphaneye yasal ve işlevsel erişim sağlamak için IronPDF lisans anahtarını ayarlayın.
  3. Örnek YAML Verisi:

    • YAML işlemlerini göstermek için örnek YAML verileri tanımlar.
  4. YAML İşlemleri:

    • İşleme için yaml.safe_load() kullanarak YAML verilerini Python nesnelerine dönüştürür.
  5. YAML'e Döküm:

    • Çıktı için Python nesnelerini tekrar YAML formatına dönüştürür, yaml.dump() kullanarak.
  6. Dosyalara Yazma:

    • YAML verilerini bir YAML dosyasına ve JSON verilerini bir JSON dosyasına depo veya iletim için dışa aktarır.
  7. JSON'ı Okuma ve Formatlama:

    • Bir dosyadan JSON verilerini okur ve okunabilirlik için json.dumps() kullanarak biçimlendirir.
  8. IronPDF ile PDF Üretme:

    • IronPDF'yi kullanarak, HTML dizelerini bir PDF belgesine dönüştürür, içine gömülü YAML verileri dahil.
  9. PDF'i Kaydetme:

    • Programdan oluşturulan PDF'i dosya sistemine kaydeder, programatik PDF oluşturmayı gösterir.

Çıktı

PyYAML (Geliştiriciler İçin Nasıl Çalışır): Şekil 5

PDF

PyYAML (Geliştiriciler İçin Nasıl Çalışır): Şekil 6

IronPDF Lisansı

IronPDF, Python lisans anahtarı üzerinde çalışır. IronPDF for Python, kullanıcıların satın almadan önce kapsamlı özelliklerini kontrol etmelerine olanak tanıyan bir ücretsiz deneme lisans anahtarı sunmaktadır.

Lisans Anahtarını, IronPDF paketini kullanmadan önce komut dosyasının başına yerleştirin:

from ironpdf import *

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

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

Sonuç

PyYAML, Python'da YAML ile çalışmak için güçlü ve esnek bir kütüphanedir. Yazımını kolaylaştıran, insan-yazılabilir format, tam YAML 1.1 desteği ve Python ile entegre olması, yapılandırma dosyaları, veri serileştirme ve daha fazlası için mükemmel bir seçim yapar. Basit yapılandırmalarla veya karmaşık veri yapılarıyla çalışıyorsanız, PyYAML, YAML verilerini etkili bir şekilde yönetmeniz için ihtiyaç duyduğunuz araçları sağlar.

IronPDF, HTML içeriğini PDF belgelerine dönüştürmeyi kolaylaştıran bir Python paketidir. Modern web standartlarını destekleyen (CSS ve JavaScript gibi) HTML'den yüksek kalitede PDF'ler üretmek için geliştiricilere basit bir API (ChromePdfRenderer) sunar. Bu, Python uygulamalarından doğrudan dinamik olarak PDF belgeleri oluşturmayı ve kaydetmeyi etkili bir araç haline getirir.

Curtis Chau
Teknik Yazar

Curtis Chau, Bilgisayar Bilimleri alanında Lisans Derecesine (Carleton Üniversitesi) sahip ve Node.js, TypeScript, JavaScript ve React konularında uzmanlaşmış ön uç geliştirmeyle ilgileniyor. Sezgisel ve estetik açıdan hoş kullanıcı arayüzleri oluşturma tutkunu, Curtis modern çerçevelerle çalışmayı ve iyi yapı...

Daha Fazla Oku

Iron Destek Ekibi

Haftada 5 gün, 24 saat çevrimiçiyiz.
Sohbet
E-posta
Beni Ara