1. 概要
「pyyaml」は、名前通り、「python」の「.yaml」パーサです。
「yamllint」は、解析のみではなくて、構文解析して、確認するモジュールだそうです。
「yaml」について、書き始めたので、同じページに書いておきます。
本ページは、下記のサイトを参考にさせていただきました。
「Python で YAML ファイルを扱う」
「Python で YAML を読み書きする方法」
「【yamllint】YAMLファイルの構文確認ツールの使用方法の紹介」
以前は、「yaml」というパッケージ名だったようなのですが、2024年10月1日現在、「pyyaml」になっています。
2. インストール
パッケージがインストールされていない場合は、「pip」でインストールします。
pip install pyyaml
インポートは、「pyyaml」でなく「yaml」です。
import yaml
3. 出力
「yaml.dump()」で、任意のオブジェクトを「.yaml」形式のテキストに変換することができます。
import yaml
obj = { 'x': 'XXX', 'y': 100, 'z': [200, 300, 400] }
with open('ファイル名.yaml', 'w') as file:
yaml.dump(obj, file)
というファイルを書いて、実行すると、下記の内容を持つファイルを出力します。
x: XXX
y: 100
z:
- 200
- 300
- 400
4. 出力
「yaml.safe_load()」で、「.yaml」形式のファイルを読み込むことができます。
(以前は、「yaml.load()」というものがあったが、セキュリティ上の理由で置き換わったらしい)
import yaml
with open('ファイル名.yaml') as file:
obj = yaml.safe_load(file)
print(obj)
というファイルを書いて、前項で書いたファイルを読み込ませると、下記の結果が得られます。
{'x': 'XXX', 'y': 100, 'z': [200, 300, 400]}
5. 構文確認
「yamllint」を「FreeBSD」の「ports」で、「quicksearch」すると、説明に「Linter for YAML files」と出力されます。
python -m yamllint ファイル名.yaml
という形式で、「ファイル名.yaml」の構文チェックを行います。
「-c コンフィグレーションファイル」という形式で、コンフィグレーションファイルの指定もできるようです。
この方式で、前の方の項で作成した。
x: XXX
y: 100
z:
- 200
- 300
- 400
ちゅうのを構文確認してみると。
ファイル名.yaml
1:1 warning missing document start "---" (document-start)
4:1 error wrong indentation: expected at least 1 (indentation)
て、出力されましたがな・・・。
「pyyaml」で出力したのに、だめじゃん。
現在(2024年11月14日)の本式だと、最初に「---」が必要だし、ハッシュの方は、インデントが必要なんだな・・・。
---
x: XXX
y: 100
z:
- 200
- 300
- 400
と書き換えて、実行すると「yamllint」は、無口になりました。