「PythonでYAMLファイルを扱いたい」
「階層構造を持ったデータを設定ファイルに設定したい」
このような場合には、PyYAMLがオススメです。
この記事では、PyYAMLについて解説しています。
本記事の内容
- PyYAMLとは?
- PyYAMLのシステム要件
- PyYAMLのインストール
- PyYAMLの動作確認
それでは、上記に沿って解説していきます。
PyYAMLとは?
PyYAMLは、PythonでYAMLファイルを処理できるPythonライブラリです。
YAMLファイルと聞くと、難しく思うかもしれません。
でも、何も難しく捉える必要はありません。
YAMLファイルが単なる設定ファイルだと思えば、問題ありません。
そして、その設定ファイルの値に階層構造を持たせることが可能です。
また、設定ファイルの値に様々な型を設定できます。
文字列や数値だけではなく、リスト形式なども設定可能です。
以上、PyYAMLについて説明しました。
次は、PyYAMLのシステム要件を確認します。
PyYAMLのシステム要件
現時点(2021年12月)でのPyYAMLの最新バージョンは、6.0となります。
この最新バージョンは、2021年10月14日にリリースされています。
サポートOSに関しては、以下を含むクロスプラットフォーム対応です。
- Windows
- macOS
- Linux
また、サポート対象となるPythonのバージョンは以下となります。
- Python 3.6
- Python 3.7
- Python 3.8
- Python 3.9
- Python 3.10
このPythonの対応状況は、完璧と言えます。
完璧とは、以下のPython公式開発サイクルに従っているということです。
バージョン | リリース日 | サポート期限 |
3.6 | 2016年12月23日 | 2021年12月23日 |
3.7 | 2018年6月27日 | 2023年6月27日 |
3.8 | 2019年10月14日 | 2024年10月 |
3.9 | 2020年10月5日 | 2025年10月 |
3.10 | 2021年10月4日 | 2026年10月 |
ただ、2021年12月末でPython 3.6はサポート終了となります。
個人的には、Python 3.9の利用が最も無難かと思います。
以上、PyYAMLのシステム要件について説明しました。
次は、PyYAMLをインストールします。
PyYAMLのインストール
検証は、次のバージョンのPythonで行います。
$ python -V Python 3.9.9
まずは、現状のインストール済みパッケージを確認しておきます。
$ pip list Package Version ---------- ------- pip 21.3.1 setuptools 59.5.0 wheel 0.36.2
次にするべきことは、pipとsetuptoolsの更新です。
pipコマンドを使う場合、常に以下のコマンドを実行しておきましょう。
python -m pip install --upgrade pip setuptools
では、PyYAMLのインストールです。
PyYAMLのインストールは、以下のコマンドとなります。
pip install PyYAML
インストールは、一瞬で終わります。
では、どんなパッケージがインストールされたのかを確認しましょう。
$ pip list Package Version ---------- ------- pip 21.3.1 PyYAML 6.0 setuptools 59.5.0 wheel 0.36.2
PyYAMLには、依存するパッケージがありません。
PyYAMLは、非常にシンプルな構成と言えます。
よって、既存環境にも簡単に導入可能です。
依存関係でゴチャゴチャせずに済みます。
以上、PyYAMLのインストールを説明しました。
次は、PyYAMLの動作確認を行います。
PyYAMLの動作確認
まずは、YAMLファイルを用意しましょう。
text.yaml
para1: 日本語 para2: 12345 para3: [1, 2, 3]
このYAMLファイルを読み込むコードは、以下。
import yaml with open("test.yaml") as data: yaml_obj = yaml.safe_load(data) print(type(yaml_obj["para1"])) print(yaml_obj["para1"]) print(type(yaml_obj["para2"])) print(yaml_obj["para2"]) print(type(yaml_obj["para3"])) print(yaml_obj["para3"])
上記コードを実行した結果は、以下となります。
<class 'str'> 日本語 <class 'int'> 12345 <class 'list'> [1, 2, 3]
型を適切に判別しています。
簡単にPythonでYAMLファイルを扱うことが確認できました。
以上、PyYAMLの動作確認を説明しました。