PYTHON 幫助

PyYAML(如何為開發人員運作)

查克尼思·賓
查克尼思·賓
2024年8月13日
分享:

介紹

PyYAML 是一個 Python 程式庫,可以作為 YAML 的解析器和發送器。 YAML(YAML 不是标记语言)是一种人类可读的数据序列化格式,与 Python 应用程序很好地集成,具有出色的错误支持、功能强大的扩展 API 等等。 YAML 通常用於配置文件和不同數據結構語言之間的数据交换,並考慮到人類可讀性。 在本文後面,我們將研究IronPDF,這是一個由Iron Software推出的 PDF 生成 Python 套件。

PyYAML 的主要特點

  1. 人類可讀格式:YAML 旨在易於閱讀和書寫,使其成為複雜配置文件和數據序列化的理想選擇。

  2. 完整的 YAML 1.1 支援:PyYAML 支援完整的 YAML 1.1 規範,包括 Unicode 支援和自訂資料類型。

  3. 與 Python 的整合:PyYAML 提供 Python 特定的標籤,允許表示任意的 Python 對象,這使其在各種應用中具有多樣性。

  4. 錯誤處理:PyYAML 提供合理的錯誤訊息,對於除錯非常有幫助。

安裝

要安裝 YAML 套件,可以使用 pip:

pip install pyyaml

基本用法

以下是使用 PyYAML 從任意 Python 物件載入和轉儲 YAML 文件的簡單範例。

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)
PYTHON

輸出

PyYAML(開發者如何使用):圖 1

進階功能

  1. 自定義數據類型:PyYAML 允許您定義自定義的構造器和表示器,以處理符合 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)
PYTHON

輸出

PyYAML(它如何作用於開發者):圖2

  1. 處理大檔案:PyYAML 可以通過使用基於流的加載和轉儲來有效地處理多個 YAML 文件或大型 YAML 文件。
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

輸出

PyYAML(它如何為開發者工作):圖 3

介紹 IronPDF

PyYAML(對開發人員的運作原理):圖 4

IronPDF 是一個強大的 Python 函式庫,旨在使用 HTML、CSS、圖像和 JavaScript 創建、編輯和簽署 PDF。 它提供商用級性能且佔用較低的記憶體資源。 主要功能包括:

HTML 轉 PDF

將 HTML 文件、HTML 字串和 URL 轉換為 PDF。 例如,使用 Chrome PDF 渲染器將網頁呈現為 PDF。

跨平台支援

兼容各種 .NET 平台,包括 .NET Core、.NET Standard 和 .NET Framework。 它支援 Windows、Linux 和 macOS。

編輯和簽署

設置屬性、通過密碼和權限添加安全性,並對您的PDF應用數字簽名。

頁面模板和設置

自訂 PDF 的頁眉、頁腳、頁碼和可調整的邊距。 IronPDF 支援響應式版面配置和自定義紙張尺寸。

標準合規性

IronPDF 遵循 PDF 標準,如 PDF/A 和 PDF/UA。 它支持 UTF-8 字符編碼並處理圖像、CSS 和字體等資產。

使用 IronPDF 和 PyYaml 生成 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")
PYTHON

程式碼說明

  1. 導入:

    • 該腳本開始時會導入必要的 Python 庫和模組:yaml、json 和 IronPDF。 這些程式庫用於處理 YAML 和 JSON 資料格式,以及使用 IronPDF 生成 PDF。
  2. 設定授權金鑰:

    • 有一個步驟需設置 IronPDF 的許可金鑰(License.LicenseKey = "your license")。 這對合法且有效地使用IronPDF庫至關重要。
  3. 範例 YAML 數據:

    • 定義了一個範例 YAML 格式的字串 (yaml_data),包含了一位假想人物及其子女的信息。 此資料用作示範 YAML 處理的範例。
  4. YAML 操作:

    • 該腳本使用 yaml.safe_load() 加載 YAML 資料,將其轉換為 Python 數據結構。 這允許腳本以程式化的方式操縱和處理數據。
  5. 轉存至 YAML:

    • 使用 yaml.dump() 將 Python 資料結構轉換回 YAML 格式。 這演示了如何將 Python 物件序列化為 YAML 格式以進行存儲或傳輸。
  6. 寫入檔案:

    • 使用yaml.dump()將YAML數據寫入文件(output_file.yaml)。 同樣地,它將 YAML 資料轉換成 JSON 格式,並使用 json.dump() 寫入另一個檔案(output_file.json)。
  7. 讀取 JSON 和格式化:

    • 此操作從output_file.json讀取 JSON 數據,解析後使用json.dumps()並以 2 個空格縮排格式化。 此操作說明如何讀取和格式化 JSON 數據,以提高可讀性或進行進一步處理。
  8. 使用 IronPDF 生成 PDF:

    • 利用 IronPDF (ChromePdfRenderer())將 HTML 內容字串渲染成 PDF 文件。 HTML內容包含作為文件內容一部分的原始YAML數據。
  9. 保存 PDF:

    • 這最後一步使用 pdf.SaveAs() 將生成的 PDF 文件 (awesome.pdf) 保存到文件系統中。 它演示了如何以程式化方式創建和儲存 PDF 文件。

輸出

PyYAML(對開發者的運作方式):圖5

PDF

PyYAML(它如何為開發人員工作):圖6

IronPDF 授權

IronPDF 運行於 Python 的授權金鑰上。 IronPDF for Python 提供免費試用授權密鑰,讓使用者在購買前試用其豐富的功能。

在使用 IronPDF 套件之前,將授權密鑰放置在腳本的開頭:

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

結論

PyYAML 是一個強大且靈活的庫,用於在 Python 中處理 YAML。 其易讀格式、完整的 YAML 1.1 支援以及與 Python 的整合,使其成為配置文件、數據序列化等的理想選擇。 無論您是在處理簡單配置還是複雜數據結構,PyYAML 都提供了有效處理 YAML 數據所需的工具。

IronPDF 是一個 Python 套件,用於將 HTML 內容轉換為 PDF 文件。 它提供了一個簡單的 API (ChromePdfRenderer),供開發者從 HTML 生成高品質的 PDF,並且支持現代網頁標準,如 CSS 和 JavaScript。 這使得它成為一個有效的工具,可以直接從 Python 應用程序動態創建和保存 PDF 文檔。

查克尼思·賓
軟體工程師
Chaknith 致力於 IronXL 和 IronBarcode。他在 C# 和 .NET 方面擁有豐富的專業知識,協助改進軟體並支持客戶。他從用戶互動中獲得的洞察力有助於提高產品、文檔和整體體驗。
< 上一頁
msgpack python(對開發人員的運作方式)
下一個 >
sqlite utils Python (如何為開發者工作)

準備開始了嗎? 版本: 2025.4 剛剛發布

查看許可證 >