YAMLについて
読みやすくて編集しやすいイケてるデータ記述テキストフォーマット
基本
code:yaml:test.yaml
# コメント行
string: this is yaml # 文字列。コロンのあとにはスペースを必ず入れる。値には前後のスペースはカットされる。
number: 1 # 数値
bool_item: true # Bool値
empty_string: "" # 空文字
null_item: null # 明示的なnull指定
empty_item: # これもnull扱い
# 改行を含む文字列。改行コードや空行の扱いはオプション"|", "|+", "|-"で変わる。
# インデントでひとつの塊と認識される。内容にはインデントは入らない。
# 行末コメントも内容に入ってしまうため次の項目まではコメントを入れられない。
# 最後に空行が入っていることに注目
multi-line-strings: |
1行目
2行目
3行目
escaped_char: \" # エスケープ文字
# 改行を含まない複数行文字列。普通の文字列の分かち書き。
multi-line-strings-no-line: "\
1行目\
2行目\
3行目"
number_list: # 数値のリスト
- 101 # 先頭に「-」とスペース
- 102.25 # 小数もOK
- 103.5
string_list: # 文字列のリスト
- first # リスト項目の前にインデントは入れてもいれなくてもいいが、深さを揃えること
- "second" # クオーテーションでくくってもくくらなくても同じ
- third
- 1
- a
subitem_parent:
subitem_child: # インデントでサブ項目
- value1
- value2
# innner comment
object: # オブジェクト(構造体)の例
name: item1
value: 300
in list:
- inlistfirst
- inlistsecond
- inlistthird
code:txt
data'string' = 'this is yaml' <-- 文字列(前後の空白は削除される) ... = '1行目 2行目 3行目' <-- 指定しなかった場合。改行はスペースに
... = '1行目\n2行目\n3行目\n\n' <-- 「|+」。続く空行の改行コードを保持する。
... = '1行目\n2行目\n3行目' <-- 「|-」。最後の改行コードを削除する。
number_list0 + number_list1 = 203.25 <-- 数値の足し算(小数も可能) string_list0 + string_list1 = firstsecond <-- 文字列の足し算 <-- オブジェクト
code:python
import yaml
try:
with open("./test.yaml", encoding='utf-8', mode="r") as file: # 日本語を使ってる場合は文字コードを明示
data = yaml.safe_load(file)
except yaml.YAMLError as error:
print(f"Error parsing YAML file: {error}")
exit(1)
...