PYTHON帮助

PyYAML(开发人员如何使用)

发布 2024年八月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 将 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)
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 字符串和网址转换为 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 = "你的许可证") for IronPDF。这对于合法有效地使用IronPDF库至关重要。
  3. 示例 YAML 数据:

    • 定义一个示例 YAML 格式的字符串 (yaml_data) 包含有关假设人物及其子女的信息。这些数据作为示例,用以演示YAML处理。
    1. YAML 操作:
    • 脚本使用 yaml.safe_load 加载YAML数据()**将其转换为Python数据结构。这使脚本能够以编程方式操作和处理数据。
  4. 导出到YAML:

    • 使用 yaml.dump 将Python数据结构转换回YAML格式()**. 这展示了如何将 Python 对象序列化为 YAML 格式以进行存储或传输。
  5. 写入文件:
  • 将 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 License

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文档的有效工具。

下一步 >
sqlite utils Python(对开发者如何工作)

准备开始了吗? 版本: 2024.9 刚刚发布

免费 pip 安装 查看许可证 >