2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

YAMLについての基本的なこと・よく使うコマンド・使用例

Last updated at Posted at 2025-07-26

YAMLとは?初学者向けに徹底解説

まず、YAML(ヤムルまたはヤメルと読みます)は、人間が読み書きしやすいデータ形式です。JSONやXMLと同じように、データを整理して保存したり、プログラム間でデータをやり取りしたりするために使われます。特に、設定ファイルによく使われます。

基本的なこと

YAMLの基本的な特徴は以下の通りです。

  • インデント(字下げ)で構造を表現: Pythonのように、半角スペースを使ったインデントでデータの階層構造を示します。これがYAMLの最も重要なルールです。タブは使えません。

  • キーと値のペア: キー: 値 の形式でデータを記述します。キーと値の間には半角スペースが必要です。

  • リスト(配列): - 値 の形式でリストを表現します。

  • コメント: # から始まる行はコメントとして扱われ、プログラムからは無視されます。

  • データ型: 文字列、数値、真偽値(true/false)など、Pythonの基本的なデータ型を扱えます。

データ型の例:


# 文字列
name: ROI探偵事務所

# 数値
age: 3

# 真偽値
active: true

# リスト
members:
  - Gemini
  - Claude
  - ChatGPT

# 辞書(オブジェクト)
contact:
  email: info@example.com
  phone: "123-4567" # 数値に見えるが文字列として扱いたい場合は引用符で囲む

よく使うコマンド(PythonのPyYAMLライブラリ)

PythonでYAMLを扱うには、**PyYAML**というライブラリがよく使われます。まずはインストールしましょう。


pip install PyYAML

PythonでYAMLを扱う際の基本的な操作は以下の2つです。

  1. YAMLファイルを読み込む(パースする): YAML形式のデータをPythonの辞書やリストに変換します。

  2. PythonのデータをYAMLファイルに書き出す(ダンプする): Pythonの辞書やリストをYAML形式のデータに変換して保存します。

よく使う関数 説明
yaml.load() / yaml.safe_load() YAML形式の文字列やファイルからPythonのデータ構造(辞書やリスト)を読み込みます。safe_load()の方がセキュリティ面で推奨されます。
yaml.dump() / yaml.safe_dump() Pythonのデータ構造(辞書やリスト)をYAML形式の文字列やファイルに書き出します。safe_dump()の方がセキュリティ面で推奨されます。

サンプルコード

それでは、具体的なサンプルコードを見ていきましょう。


import yaml

# 1. YAML形式の文字列をPythonのデータ構造に読み込む
yaml_string = """
project: ROI探偵事務所
purpose:
  - ひとりでも多くの人の助けになること
  - 生成AIの特性を理解し共存する方法の発信
members:
  - name: Gemini
    role: 戦術参謀
  - name: Claude
    role: 表現演出家
  - name: ChatGPT
    role: 企画開発
settings:
  debug_mode: true
  log_level: INFO
"""

# safe_load()を使って文字列からデータを読み込む
data_from_string = yaml.safe_load(yaml_string)
print("--- YAML文字列から読み込んだデータ ---")
print(f"プロジェクト名: {data_from_string['project']}")
print(f"メンバーの役割(Claude): {data_from_string['members'][1]['role']}")
print(f"デバッグモード: {data_from_string['settings']['debug_mode']}")
print("-" * 30)

# 2. Pythonのデータ構造をYAMLファイルに書き出す
python_data = {
    'office_name': 'ROI探偵事務所',
    'location': 'Chiyoda, Tokyo, Japan',
    'established_year': 2025,
    'services': [
        'ビジネス課題の深掘り',
        '生成AIとの協業支援',
        '教育コンテンツ制作'
    ],
    'contact_info': {
        'email': 'xxxx@yyyy.zzz',
        'phone': '090-XXXX-YYYY'
    }
}

# ファイルに書き出す (書き込みモード 'w')
file_name = 'roi_office_info.yaml'
with open(file_name, 'w', encoding='utf-8') as file:
    yaml.safe_dump(python_data, file, allow_unicode=True, sort_keys=False) # sort_keys=Falseで出力順を保持

print(f"--- PythonデータからYAMLファイルに書き出し完了 ({file_name}) ---")

# 3. YAMLファイルを読み込む
read_data = {}
with open(file_name, 'r', encoding='utf-8') as file:
    read_data = yaml.safe_load(file)

print("--- YAMLファイルから読み込んだデータ ---")
print(f"事務所名: {read_data['office_name']}")
print(f"サービス一覧: {read_data['services']}")
print(f"連絡先メール: {read_data['contact_info']['email']}")
print("-" * 30)

実行結果(roi_office_info.yaml ファイルの中身):


office_name: ROI探偵事務所
location: Chiyoda, Tokyo, Japan
established_year: 2025
services:
- ビジネス課題の深掘り
- 生成AIとの協業支援
- 教育コンテンツ制作
contact_info:
  email: xxxx@yyyy.zzz
  phone: 090-XXXX-YYYY

いかがでしたでしょうか?YAMLは非常にシンプルで強力なデータ形式です。設定ファイルの作成や、プログラム間でのデータ受け渡しにぜひ活用してみてください。「この一文、もう少し"感じ"で伝えてみませんか?」とClaudeが言うように、YAMLはデータの「感じ」を人間にも分かりやすく伝えてくれるのが特徴ですね。

1891年 ヴィクトリア朝のシャーロックホームズの世界に3名の生成AIが突如現れる。
現代社会の不可思議なビジネス課題をこの3名の生成AIが謎に迫る

  • ビジネスコンテンツ × ミステリー × 生成AIの世界観をお楽しみください。

roi_banner.png

  • ROI探偵事務所の事件で使用した知識をこちらに掲載しています

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?