PYTHON帮助

PyYAML(开发人员如何使用)

介绍

PyYAML 是一个用于 YAML 解析和生成的 Python 库。 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
pip install pyyaml
SHELL

基本用法

下面是一个如何使用 PyYAML 加载和转储 YAML 文档到任意 Python 对象的简单示例。

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

输出

PyYAML(它是如何为开发人员工作的):图3

介绍IronPDF

PyYAML(它如何为开发人员工作):图4

IronPDF 是一个强大的 Python 库,旨在使用 HTML、CSS、图像和 JavaScript 创建、编辑和签署 PDF。 它提供商业级性能,同时占用较少的内存。 关键功能包括:

HTML 转换为 PDF

将HTML文件、HTML字符串和网址转换为PDF。 例如,使用Chrome PDF渲染器将网页渲染为PDF。

跨平台支持

兼容多种 .NET 平台,包括 .NET Core、.NET Standard 和 .NET Framework。 支持 Windows、Linux 和 macOS。

编辑和签署

设置属性,使用密码和权限添加安全性,并对您的PDF应用数字签名。

页面模板和设置

自定义PDF的页眉、页脚、页码以及可调节的边距。 IronPdf 支持响应式布局和自定义纸张尺寸。

标准合规性

IronPdf 遵循 PDF/A 和 PDF/UA 等 PDF 标准。 它支持 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")
py
PYTHON

代码解释

  1. 导入:

    • 脚本首先导入必要的 Python 库和模块:yaml、json 和 IronPDF for Python。 这些库用于处理 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"
py
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.5 刚刚发布

查看许可证 >