MeWrite Docs

yaml.scanner.ScannerError: mapping values are not allowed here

YAMLファイルのインデントや構文が不正な場合に発生

概要

YAMLファイルの構文エラーで、インデントの不整合やコロンの位置が不正な場合に発生します。

エラーメッセージ

yaml.scanner.ScannerError: mapping values are not allowed here
  in "config.yml", line 5, column 10

原因

  1. インデントの不整合: スペースとタブの混在、インデント数の不一致
  2. コロンの後にスペースなし: key:value(スペースが必要)
  3. 特殊文字のエスケープ: クォートが必要な値
  4. リストとマップの混在: 構造が不正

解決策

1. インデントを統一(スペース2つ推奨)

1
2
3
4
5
6
7
8
9
# 悪い例
parent:
  child1: value1
    child2: value2  # インデントが多すぎる

# 良い例
parent:
  child1: value1
  child2: value2

2. コロンの後にスペース

1
2
3
4
5
# 悪い例
name:John

# 良い例
name: John

3. 特殊文字をクォート

1
2
3
4
5
6
# 悪い例
message: Hello: World  # コロンが含まれる

# 良い例
message: "Hello: World"
message: 'Hello: World'

4. リストの正しい書き方

1
2
3
4
5
6
7
8
# リスト
items:
  - item1
  - item2
  - item3

# インラインリスト
items: [item1, item2, item3]

5. マルチラインの値

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
# ブロックスカラー(改行を保持)
description: |
  This is line 1.
  This is line 2.  

# 折りたたみブロック(改行をスペースに)
description: >
  This is a very long
  description that spans
  multiple lines.  

6. アンカーとエイリアス

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
defaults: &defaults
  adapter: postgres
  host: localhost

development:
  <<: *defaults
  database: dev_db

production:
  <<: *defaults
  database: prod_db

7. YAMLリンター使用

1
2
3
4
5
# yamllintをインストール
pip install yamllint

# ファイルをチェック
yamllint config.yml

8. VS Codeの設定

1
2
3
4
5
6
7
8
// settings.json
{
  "editor.insertSpaces": true,
  "editor.tabSize": 2,
  "[yaml]": {
    "editor.autoIndent": "keep"
  }
}

YAML の他のエラー

最終更新: 2025-12-09