0
0

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の基礎的書き方について

Posted at

YAMLとは?

YAMLは "YAML Ain't Markup Language "の略で、人間が読めるデータシリアライズ言語です。YAMLは設定ファイルの作成によく使われます。

YAMLはJSONのスーパーセットで、JSONができることとそれ以上のことができるます。

YAMLはインデントと改行でデータ構造を表します。

■Listデータの書き方

◆Listの中にスカラーが入っているパターン

- apple
- orange
- banana

スクリーンショット 2025-09-20 10.01.04.png

上のように書いて、JSONに変換すると、画像のようになります。

「-」で書いていくパターンを「ブロックスタイル」といいます。

[apple, orange, banana]

スクリーンショット 2025-09-20 10.01.58.png

jsonのような形式でYAMLを書くこともできます。

この書き方を「フロースタイル」といいます。

◆Listの中に長いスカラーが入っているパターン

- apple
  orange
  banana

スクリーンショット 2025-09-20 10.05.10.png

長いスカラーは、上のような書き方ができます。

JSONに変換すると、1つの文字列として扱われます。

◆Listの中にListが入っているパターン

-
  - apple
  - orange
  - banana

スクリーンショット 2025-09-20 10.18.24.png

listの中にlistがあるパターンを再現するには、上のように書きます。

◆Listの中に複数のListがあるパターン

-
  - apple
  - orange
  - banana
-
  - carrot
  - spinach
  - cabbage

スクリーンショット 2025-09-20 10.20.23.png

■dictionaryデータの書き方

◆dictionaryで値が1つのパターン

apple: 1

or

apple:
  1

スクリーンショット 2025-09-20 10.40.34.png

dictionaryを定義するには、上のように定義します。

apple:
  1
  2
  3

スクリーンショット 2025-09-20 10.41.30.png

複数の値をベタ書きしても、スカラーとして認識されます

◆dictionaryで複数の値を定義するパターン

apple:
  small: 1
  medium: 2
  large: 3

スクリーンショット 2025-09-20 10.43.12.png

◆1つのdictinaryの中にkeyとvalueが複数あるパターン

apple: 100
banana: 150
orange: 200

スクリーンショット 2025-09-20 11.26.57.png

■Listとdictionaryの組み合わせ

◆listの中にdictinaryが1つあるパターン

- apple: 100

スクリーンショット 2025-09-20 10.58.57.png

- apple: 100
  banana: 200
  orange: 300

スクリーンショット 2025-09-20 10.59.55.png

◆1つのlistの中にdictionaryが複数あるパターン

- apple: 100
- banana: 200
- orange: 300

スクリーンショット 2025-09-20 11.01.32.png

◆dictinaryの中にListがあるパターン

fruits:
  - apple
  - banana
  - orange
  - grape

スクリーンショット 2025-09-20 11.24.31.png

◆listの中に複数のdictinaryがあるパターン

fruits:
  - apple: 100
  - banana: 150
  - orange: 200
  - grape: 250

スクリーンショット 2025-09-20 11.26.02.png

■改行系

◆長い文字列の改行あり

description: |
  This is a sample YAML file for a project configuration.
  It includes various settings and parameters for the project.

スクリーンショット 2025-09-20 11.44.48.png

改行込みの複数行文字列として認識させるには、| を使います。

jsonに治すと、「configuration.」のあとに改行が含まれていることがわかります。

◆長い文字列の改行なし

description: >
  This is a sample YAML file for a project configuration.
  It includes various settings and parameters for the project.

image.png

複数行の文字列の改行未反映バージョンです。

「configuration.」のあとに改行が含まれていないことがわかります。

◆コメント

# コメント
description: |
  This is a sample YAML file for a project configuration.
  It includes various settings and parameters for the project.

yamlでは、#でコメントを書くことができます。

■データ型について

◆Scalar (文字列)

# 文字列
apple: red
banana: yellow
grape: purple

# 文字列(ダブルクォート)
apple: "red"
banana: "yellow"
grape: "purple"

# 文字列(シングルクォート)
apple: 'red'
banana: 'yellow'
grape: 'purple'

クオーテンションで囲ってこも、囲わなくても文字列として扱われます。

◆Scalar (数値)

# int型
apple: 100
orange: 80
banana: 150

# float型
apple: 1.11
orange: 0.8
banana: 1.5

大きく分けて、int型とfloat型があります。

◆Scalar (日付)

# 「協定世界時 (UTC)」を意味する Z が付いており、これは UTC 基準 の時刻であることを示します。
standard time zone: 2001-12-15T02:59:43Z 

# local time zone(標準時からの差分)
# 「+08:00」というオフセットが記されており、UTC より 8 時間進んだローカル時刻を表します。
# 例えば、UTC で 02:59:43 の時刻が、このローカルでは 10:59:43 に相当します。
local time zone: 2001-12-15T02:59:43+08:00 

# no time zone(タイムゾーン情報なしの場合、Z = 世界標準時で扱われる)
# タイムゾーン指定がない時刻。YAML 仕様上は、 UTC とみなされる というルールがあります。
no time zone: 2001-12-15T02:59:43

# date only
# 時刻部分が省略されている日付のみの形式。
# YAML 仕様では、この場合は 2001-12-15T00:00:00Z(その日の午前 0 時の UTC)と同じと解釈されます。
date only: 2001-12-15 

◆Scalar (真偽値)

boolValue: False # false, FALSE, False, no, No, NO, off, Off, OFF も同じ

boolValue2: true # true, TRUE, True, yes, Yes, YES, on, On, ON も同じ

◆Scalar (Null値)

name: Null # null, NULL, Null, ~ も同じ意味

◆Collection (シーケンス)

fruits:
  - apple
  - banana
  - cherry

シーケンスとは、List(配列)のことです。

◆Collection (マッピング)

apple:
  small: 1
  medium: 2
  large: 3

マッピングは、オブジェクトのことです。

■資料

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?