Python
でYAMLファイルを扱う際には、主にPyYAML
とruamel.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操作が可能です。