Python/PyYAML
表示
< Python
(Python/標準モジュール/yaml から転送)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は以下のような用途で広く使用されています: