Python で YAML を扱う: YAML ライブラリの使い方を解説

YAML (YAML Ain’t Markup Language) は、データシリアライズのためのフォーマットです。JSON に似た構造を持つ一方、人間が読み書きしやすいことを重視しており、設定ファイルやデータ交換に広く用いられています。

YAML の魅力: 人間にも機械にも優しいデータフォーマット

YAML は、JSON に似た構造を持ちながらも、より自然な書き方でデータを表現できます。インデントとコロンを活用したシンプルな構文は、初心者でも理解しやすく、コードの可読性も抜群です。
インデントを駆使して表現するのがPythonに似ていて、以下の特徴を持つことから、設定ファイルやデータ交換のフォーマットとして人気です。

Langchainでもyamlはサポートされています。

YAML の特徴:

  • 人間が読み書きしやすい: インデントとコロンを使用し、JSON よりも自然な形でデータを表現できます。
  • データ型が豊富: スカラー、リスト、マップ、日付、時間など、様々なデータ型をサポートします。
  • コメント機能: # でコメントを記述できます。
  • 拡張性: プラグインやモジュールを追加することで、さらに複雑なデータ構造を表現できます。

YAML のフォーマット

YAML は、キーと値のペア、リスト、辞書などをインデントを使って表現します。

基本的な構文:

key: value
  • キーと値はコロンで区切られます。
  • キーはスペースを含む場合、引用符で囲みます。
  • インデントはスペースで表現し、1レベルにつき2スペースが推奨されます。

リスト:

- item1
- item2
- item3
  • リストはダッシュ (-) で始まる各要素で構成されます。

辞書:

key1: value1
key2: value2
key3:
  nested_key1: nested_value1
  nested_key2: nested_value2
  • 辞書はキーと値のペアで構成されます。
  • ネストされた辞書はインデントを使って表現します。

Python で YAML を扱う: PyYAML ライブラリ

Python で YAML を扱うには、PyYAML ライブラリが便利です。PyYAML は YAML を Python のオブジェクトに変換したり、Python のオブジェクトを YAML に変換したりすることができます。

インストール:

pip install pyyaml

基本的な使い方:

import yaml

# YAML ファイルを読み込む
with open('data.yaml', 'r') as file:
    data = yaml.safe_load(file)

# データを表示する
print(data)

# YAML ファイルにデータを書き込む
with open('data.yaml', 'w') as file:
    yaml.dump(data, file)

例:

# data.yaml
name: John Doe
age: 30
hobbies:
  - reading
  - coding
  - traveling
# main.py
import yaml

with open('data.yaml', 'r') as file:
    data = yaml.safe_load(file)

print(data['name'])  # 出力: John Doe
print(data['hobbies'][1])  # 出力: coding

まとめ

YAML は人間が読み書きしやすいデータフォーマットであり、Python の PyYAML ライブラリを使うことで簡単に YAML データを扱うことができます。設定ファイルやデータ交換のフォーマットとして、ぜひ活用してみてください。

YAMLではなく、JSONが知りたい方はこちら。


最後に、Pythonの基礎を学びたい方は以下がおすすめです。私も持っていてたまに眺めて勉強していますものですのでぜひ購入して学習してみてください。

にいやん

出身 : 関西 居住区 : 関西 職業 : 組み込み機器エンジニア (エンジニア歴13年) 年齢 : 38歳(2022年11月現在) 最近 業務の効率化で噂もありPython言語に興味を持ち勉強しています。 そこで学んだことを記事にして皆さんとシェアさせていただければと思いブログをはじめました!! 興味ある記事があれば皆さん見ていってください!! にほんブログ村

Recent Posts

PlantUMLでロバストネス図を簡単に作成!

システム設計をスムーズに進める…

1日 ago

PlantUMLでクラス図を簡単に作成!

PlantUMLを用いてクラス…

2日 ago

PlantUMLでユースケース図を簡単に作成!

システム開発の設計でよく使うユ…

3日 ago

PlantUMLで美しいフローチャートを簡単に作成!

システム設計や業務フローの可視…

4日 ago

PlantUMLでシーケンス図を簡単に作成!

システムの設計や説明って、難し…

5日 ago