Python - パーサ - pyyaml・yamllint yaml パーサ

 クラウディア
1. 概要
2. インストール
3. 出力
4. 入力
5. 構文確認

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」は、無口になりました。
AbemaTV 無料体験
 
 
4