コンテンツにスキップ

Python/PyYAML

出典: フリー教科書『ウィキブックス(Wikibooks)』

PyYAMLは、PythonでYAMLデータを解析および生成するためのライブラリです。YAMLは人間が読み書きしやすいデータシリアライゼーション形式であり、設定ファイルやデータ交換形式として広く使用されています。PyYAMLは、YAMLデータの操作を簡単にするための便利なツールセットを提供します。

特徴

[編集]

PyYAMLは以下のような特徴を持っています:

  • YAMLデータの解析(読み込み)と生成(書き込み)が可能。
  • Pythonのネイティブなデータ型(辞書、リスト、文字列など)とのシームレスな統合。
  • YAML 1.1仕様のサポート。
  • セキュリティを考慮した安全な読み込み(safe_load()関数など)を提供。

インストール

[編集]

PyYAMLはPython標準ライブラリには含まれていないため、pipを使用してインストールする必要があります。以下のコマンドでインストールできます:

pip install pyyaml

基本的な使い方

[編集]

以下にPyYAMLを使用した基本的なコード例を示します。

YAMLデータの読み込み

[編集]

以下は、YAMLファイルをPythonのオブジェクトとして読み込む方法です:

import yaml

# YAMLファイルからデータを読み込む
def load_yaml(file_path):
    with open(file_path, 'r') as file:
        data = yaml.safe_load(file)
    return data

# 使用例
file_path = "example.yaml"
data = load_yaml(file_path)
print(data)

このコードでは、yaml.safe_load()関数を使用して、指定されたYAMLファイルをPythonオブジェクト(辞書やリストなど)に変換します。

YAMLデータの書き込み

[編集]

以下は、PythonオブジェクトをYAML形式でファイルに書き出す方法です:

# PythonオブジェクトをYAMLファイルに書き出す
def save_yaml(data, file_path):
    with open(file_path, 'w') as file:
        yaml.dump(data, file, default_flow_style=False)

# 使用例
data = {
    'name': 'Alice',
    'age': 30,
    'skills': ['Python', 'YAML', 'Django']
}
file_path = "output.yaml"
save_yaml(data, file_path)

このコードでは、yaml.dump()関数を使用してPythonオブジェクトをYAML形式でファイルに保存します。

安全な読み込みとセキュリティ

[編集]

PyYAMLは、安全性を考慮してsafe_load()関数を提供しています。これは、不必要なコード実行を防ぐため、信頼できないYAMLデータを読み込む場合に推奨されます。一方で、yaml.load()は柔軟性が高い反面、セキュリティリスクが伴うため、使用する際には十分な注意が必要です。

応用例

[編集]

PyYAMLは以下のような用途で広く使用されています:

  • アプリケーションの設定ファイルの読み書き。
  • データフォーマットの変換。
  • DevOpsCI/CDパイプラインにおける構成管理。

関連項目

[編集]

外部リンク

[編集]