PyYAML (Geliştiriciler İçin Nasıl Çalışir)
PyYAML, bir YAML ayrıştırıcı ve yayınlayıcı olarak çalışan bir Python kütüphanesidir. YAML (YAML Ain't Markup Language), farklı veri yapısına sahip diller arasında veri değişimi ve yapılandırma dosyaları için kullanılabilen, insan okunabilir bir veri serileştirme formatıdır. Mükemmel hata desteği, güçlü genişletme API'si ve daha fazlası ile Python uygulamaları ile iyi entegrasyon sağlar. YAML, yapılandırma dosyaları ve farklı veri yapıları ile dillermiş gibi, insan okunabilirliği göz önünde bulundurulmuştur. Bu makalenin ilerleyen bölümlerinde IronPDF'yi, Iron Software'den bir PDF oluşturma Python paketini inceleyeceğiz.
PyYAML'in Anahtar Özellikleri
- İnsan Okunabilir Format: YAML, kompleks yapılandırma dosyaları ve veri serileştirme için ideal hale getirerek okunması ve yazılması kolay olacak şekilde tasarlanmıştır.
- Tam YAML 1.1 Desteği: PyYAML, Unicode desteği ve özel veri türleri de dahil olmak üzere YAML 1.1 spesifikasyonunu tam olarak destekler.
- Python ile Entegrasyon: PyYAML, rastgele Python objelerinin temsili için Python'a özgü etiketler sağlar ve bu da onu çeşitli uygulamalar için çok yönlü hale getirir.
- Hata İşleme: PyYAML, hata ayıklama sırasında çok yardımcı olabilecek anlamlı hata iletileri sunar.
Kurulum
YAML paketini yüklemek için, pip kullanabilirsiniz:
pip install pyyamlpip install pyyamlTemel Kullanım
İşte, PyYAML kullanarak bir YAML dökümanını yükleme ve rastgele bir Python objesine dökme ile ilgili bir basit örnek.
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)Çıktı

Gelişmiş Özellikler
- Özelleştirilmiş Veri Türleri: PyYAML, kanonikal YAML formatı için karmaşık veri türlerini işlemek amacıyla özel yapıcılar ve temsiller 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)Çıktı

- Büyük Dosyaları İşleme: PyYAML, akış tabanlı yükleme ve boşaltma kullanarak birden çok YAML dökümanı veya büyük YAML dosyalarını verimli bir şekilde işleyebilme kapasitesine sahiptir.
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)Çıktı
![]()
IronPDF'i Tanıtma

IronPDF, HTML, CSS, görüntüler ve JavaScript kullanarak PDF oluşturmak, düzenlemek ve imzalamak için tasarlanmış güçlü bir Python kütüphanesidir. Düşük bellek kullanimiyla ticari seviyede performans sunar. Ana özellikler şunlardır:
HTML'den PDF'ye Dönüşüm: HTML dosyalarını, HTML dizelerini ve URL'leri PDF'ye dönüştürün. Örneğin, bir web sayfasını Chrome PDF cizime kullanarak PDF olarak render edin.
Çapraz Platform Desteği: .NET Core, .NET Standard ve .NET Framework dahil çeşitli .NET platformları ile uyumludur. Windows, Linux ve macOS'u destekler.
Düzenleme ve İmzalama: Özellikleri ayarlayın, şifreler ve izinlerle güvenlik katın ve PDF'lerinize dijital imzalar uygulayın.
Sayfa Şablonları ve Ayarları: Başlıklar, altbilgiler, sayfa numaraları ve ayarlanabilir kenar boşlukları ile PDF'leri özelleştirin. IronPDF, duyarlı düzenleri ve özel kağıt boyutlarını destekler.
- Standartlara Uyum: IronPDF, PDF/A ve PDF/UA gibi PDF standartlarına uyar. UTF-8 karakter kodlaması desteği bulunmaktadır ve resim, CSS ve yazı tipleri gibi varlıkları işler.
IronPDF ve PyYAML Kullanarak PDF Belgeleri Oluşturma
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")Kod Açıklaması
İçerikler:
- Gerekli kütüphaneleri ithal eder: YAML işlemleri için
yaml, JSON işlemleri içinjsonve PDF oluşturma içinironpdf.
- Gerekli kütüphaneleri ithal eder: YAML işlemleri için
Lisans Anahtarı Ayarlama:
- IronPDF lisans anahtarını, kütüphaneye yasal ve işlevsel erişim için ayarlar.
Örnek YAML Verisi:
- YAML işlemlerini göstermek için örnek YAML verisi tanımlar.
YAML İşlemleri:
- YAML verilerini, manipülasyon için
yaml.safe_load()kullanarak Python nesnelerine dönüştürür.
- YAML verilerini, manipülasyon için
YAML'ye Dökelim:
- Python nesnelerini, çıktı için YAML formatına geri dönüştürürken
yaml.dump()kullanır.
- Python nesnelerini, çıktı için YAML formatına geri dönüştürürken
Dosyalara Yazma:
- YAML verilerini bir YAML dosyasına ve JSON verilerini bir JSON dosyasına dışa aktararak depolama veya iletim için kullanılır.
JSON Okuma ve Biçimlendirme:
- Bir dosyadan JSON verilerini okur ve okuyabilirlik için formatlar
json.dumps()kullanarak.
- Bir dosyadan JSON verilerini okur ve okuyabilirlik için formatlar
IronPDF ile PDF Oluşturma:
- IronPDF kullanarak HTML dizesini, gömülü YAML verilerini içeren bir PDF belgesine dönüştürür.
PDF Kaydetme:
- Oluşturulan PDF'yi dosya sistemine kaydeder ve programatik PDF oluşturmayı gösterir.
Çıktı


IronPDF Lisansı
IronPDF, Python icin lisans anahtarinda calisir. IronPDF for Python, kullanıcıların satın almadan önce geniş özelliklerini incelemeleri için ücretsiz bir deneme lisans anahtarı sunar.
IronPDF paketini kullanmadan once lisans anahtarini scriptin basina yerlestirin:
from ironpdf import *
# Apply your license key
License.LicenseKey = "key"from ironpdf import *
# Apply your license key
License.LicenseKey = "key"Sonuç
PyYAML, Python'da YAML ile çalışmak için güçlü ve esnek bir kütüphanedir. İnsan okunabilir formatı, tam YAML 1.1 desteği ve Python entegrasyonu ile yapılandırma dosyaları, veri serileştirmesi ve daha fazlası için mükemmel bir seçimdir. İster basit yapılandırmalarla ister karmaşık veri yapılarıyla uğraşıyor olun, PyYAML, YAML verisini etkili bir şekilde işlemek için gereken araçları sağlar.
IronPDF, HTML içeriğini PDF belgelerine dönüştürmeyi kolaylaştıran bir Python paketidir. HTML'yi yüksek kaliteli PDF'ler oluşturmak için geliştiricilere basit bir API (ChromePdfRenderer) sunar ve CSS ve JavaScript gibi modern web standartlarını destekler. Bu, doğrudan Python uygulamalarından dinamik olarak PDF belgeleri oluşturmak ve kaydetmek için etkili bir araç haline getirir.










