PythonでYAMLファイルを扱う際には、主にPyYAMLruamel.yamlというライブラリがよく使われます。YAMLは人間が読みやすいデータ形式で、設定ファイルなどに多く使われます。ここでは、それぞれのライブラリの基本的な使い方と特徴を解説します。

PyYAMLの使い方

PyYAMLは、Pythonで広く使われているライブラリで、YAML 1.1に対応しています。このライブラリは簡単にインストールでき、基本的な操作に適しています。YAMLファイルを読み込んでPythonの辞書に変換する基本例は次の通りです。

import yaml
with open('example.yaml') as f:
    try:
        data = yaml.safe_load(f)
        print(data)
    except yaml.YAMLError as exc:
        print(exc)

このコードでは、yaml.safe_load()を使用して安全にファイルを読み込んでいます。safe_loadは、コードの実行を防ぎ、信頼できないデータを扱う際に推奨されます。

PyYAMLのインストール

PyYAMLはpipで簡単にインストールできます。

pip install pyyaml

ruamel.yamlの使い方

ruamel.yamlは、YAML 1.2規格をサポートしており、PyYAMLの拡張版といえるライブラリです。このライブラリを使うと、YAMLファイル内のコメントを保持したり、より柔軟な構文解析が可能です。ruamel.yamlの使用例を以下に示します。

from ruamel.yaml import YAML
yaml = YAML()
with open('example.yaml', 'r') as f:
    data = yaml.load(f)
    print(data)

ruamel.yamlはPathライブラリとも互換性があり、コメント付きYAMLファイルを安全に扱うのに適しています。

ruamel.yamlのインストール

ruamel.yamlもpipでインストール可能です。

pip install ruamel.yaml

YAML解析の違いと用途

  • PyYAML: シンプルで高速、基本的なYAML解析に適していますが、YAML 1.1までの対応です。
  • ruamel.yaml: YAML 1.2規格に対応し、コメントの保持や高度な機能が必要な場合に適しています。

まとめ

YAMLファイルをPythonで扱うための選択肢として、PyYAMLはシンプルで実用的な解決策ですが、ruamel.yamlは高度な機能を提供します。用途に応じてこれらを使い分けることで、柔軟なYAML操作が可能です。