PYTHON 幫助

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

發佈 2024年8月13日
分享:

介紹

PyYAML是一個用於作為 YAML 解析器和發射器的 Python 庫。 YAML(YAML 不是标记语言),是一種人類可讀的資料序列化格式,能與 Python 應用程式良好結合,具有出色的錯誤支援、強大的擴展 API 等功能。 YAML 通常用於配置文件和不同數據結構語言之間的数据交换,並考慮到人類可讀性。 稍後在本文中,我們將深入了解IronPDF,來自 的 PDF 生成 Python 套件Iron Software.

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. 設定授權金鑰:

    • 有一個步驟是設定許可金鑰(License.LicenseKey = "你的授權密鑰")用於IronPDF。 這對合法且有效地使用IronPDF庫至關重要。
  3. 範例 YAML 資料:

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

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

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

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

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

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

    • 這最後一步將保存生成的 PDF 文件(awesome.pdf)保存至檔案系統使用 pdf.SaveAs(). 它演示了如何以程式化方式創建和儲存 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 等現代 Web 標準。 這使得它成為一個有效的工具,可以直接從 Python 應用程序動態創建和保存 PDF 文檔。

< 上一頁
msgpack python(對開發人員的運作方式)
下一個 >
sqlite utils Python (如何為開發者工作)

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

免費 pip 安裝 查看許可證 >