PYTHON 幫助

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

發佈 2024年8月13日
分享:

簡介

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

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處理。
    1. YAML操作:
    • 該腳本使用yaml.safe_load加載YAML數據()**將其轉換成Python資料結構。這使得腳本能夠以程式化方式操作和處理資料。
  4. 轉換為YAML:
  • 使用yaml.dump將Python資料結構轉換回YAML格式()**. 這展示了如何將 Python 對象序列化為 YAML 格式以進行存儲或傳輸。

    1. 寫入文件:
    • 將 YAML 數據寫入文件 (output_file.yaml) 使用 yaml.dump()同樣地,將YAML數據轉換為JSON格式並寫入另一個檔案。 (output_file.json) 使用 json.dump()**.
    1. 讀取 JSON 並格式化:
    • 此操作從 output_file.json 讀取 JSON 數據,解析它,並使用 json.dumps 以2個空格縮進格式化。()**。此操作說明如何讀取和格式化JSON數據,以提高可讀性或進一步處理。
    1. 使用IronPDF生成PDF:
    • 使用IronPDF (ChromePdfRenderer()**) 將 HTML 內容字符串轉換為 PDF 文檔。HTML 內容包括嵌入其中的原始 YAML 數據,作為文檔內容的一部分。
  1. 保存 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 等現代網頁標準。這使其成為一個有效的工具,可直接從 Python 應用程序動態創建和保存 PDF 文檔。

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

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

免費 pip 安裝 查看許可證 >