PYTHON ヘルプ

PyYAML (開発者のための仕組み)

イントロダクション

PyYAMLは、YAMLパーサーおよびエミッターとして機能するPythonライブラリです。 YAML(YAML Ain’t Markup Language)は、人間が読みやすいデータシリアライゼーションフォーマットであり、Pythonアプリケーションとよく統合し、優れたエラーサポート、拡張可能なAPIなどを備えています。 YAMLは設定ファイルや異なるデータ構造を持つ言語間のデータ交換によく使われる。 この記事の後半では、IronPDFIron SoftwareのPDF生成Pythonパッケージを見ていきます。

PyYAMLの主な機能

  1. 人間が読めるフォーマット: YAMLは、複雑な設定ファイルやデータシリアル化に最適で、読み書きが容易にできるよう設計されています。

  2. 完全なYAML 1.1 サポート:PyYAMLは、Unicodeサポートとカスタムデータ型を含む、YAML 1.1仕様の全体をサポートしています。

  3. Pythonとの統合: PyYAMLは任意のPythonオブジェクトを表現するためのPython特有のタグを提供しており、さまざまなアプリケーションに対して柔軟性があります。

  4. エラーハンドリング:PyYAMLは、デバッグ時に非常に役立つ、納得のいくエラーメッセージを提供します。

インストール

YAMLパッケージをインストールするには、pipを使います:

pip install pyyaml
pip install pyyaml
SHELL

基本的な使用法

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)
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 は、HTML、CSS、画像、JavaScript を使用してPDFの作成、編集、署名を行うために設計された強力なPythonライブラリです。 商業利用レベルのパフォーマンスを、低メモリフットプリントで提供します。 主要な機能には次のものが含まれます:

HTMLをPDFに変換

HTMLファイル、HTML文字列、URLをPDFに変換。 例えば、Chrome PDFレンダラーを使用してウェブページをPDFとしてレンダリングします。

クロスプラットフォームサポート

.NET Core、.NET Standard、.NET Frameworkなど、さまざまな.NETプラットフォームに対応。 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)をインポートすることから始まります。 これらのライブラリはYAMLやJSONデータフォーマットの処理、IronPDFを使ったPDF生成に使われます。
  2. ライセンスキーの設定:

    • IronPDFでは、ライセンスキーを設定する手順があります(License.LicenseKey = "your license")。 これはIronPDFライブラリを合法的かつ効果的に使用するために非常に重要です。
  3. サンプル YAML データ:

    • 架空の人物とその子供に関する情報を含むサンプルのYAML形式の文字列(yaml_data)を定義します。 このデータはYAML処理のデモンストレーションの例となります。
  4. YAML 操作:

    • そのスクリプトは、YAMLデータをyaml.safe_load()を使用して読み込み、Pythonデータ構造に変換します。 これにより、スクリプトはプログラム的にデータを操作し、作業することができる。
  5. YAMLへのダンプ:

    • Pythonのデータ構造をYAML形式に戻すには、yaml.dump()を使用します。 Python オブジェクトを保存や送信のために YAML フォーマットにシリアライズする方法を示します。
  6. ファイルへの書き込み:

    • YAMLデータをyaml.dump()を使用してファイル(output_file.yaml)に書き込みます。 同様に、YAMLデータをJSON形式に変換し、json.dump()を使用して別のファイル(output_file.json)に書き込みます。
  7. JSONの読み取りとフォーマット:

    • この操作はoutput_file.jsonからJSONデータを読み取り、それを解析しjson.dumps()を使用して2スペースのインデントでフォーマットします。 この操作では、JSONデータを読みやすくしたり、さらに処理しやすくしたりするために、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"
py
PYTHON

結論

PyYAML は Python で YAML を扱うための強力で柔軟なライブラリです。 人間が読めるフォーマット、YAML 1.1の完全なサポート、Pythonとの統合により、設定ファイルやデータのシリアライズなどに最適です。 単純な設定や複雑なデータ構造を扱う場合でも、PyYAMLはYAMLデータを効率的に扱うために必要なツールを提供します。

IronPDFはHTMLコンテンツをPDFドキュメントに変換するPythonパッケージです。 これは、HTMLから高品質のPDFを生成するための簡単なAPI(ChromePdfRenderer)を提供し、CSSやJavaScriptのような最新のウェブ標準をサポートしています。 このため、Pythonアプリケーションから直接PDF文書を動的に作成・保存するための効果的なツールとなります。

チャクニット・ビン
ソフトウェアエンジニア
ChaknithはIronXLとIronBarcodeで作業しています。彼はC#と.NETに深い専門知識を持ち、ソフトウェアの改善と顧客サポートを支援しています。ユーザーとの対話から得た彼の洞察は、より良い製品、文書、および全体的な体験に貢献しています。
< 以前
msgpack python(開発者にとっての動作方法)
次へ >
sqlite utils Python (開発者のための仕組み)