KAMEYA_WORKS
YAML(YAML Ain't Markup Language)は、設定ファイルやデータの記述に使われるシンプルなフォーマットです。JSONやXMLと似ていますが、より可読性が高いのが特徴です。
name: Alice
age: 25
skills:
- Python
- JavaScript
- YAML
address:
city: Tokyo
country: Japan
name
や age
のように key: value
のペアで記述skills
のように -
を使ってリストを表現address
のように インデント
を使って階層構造を表現PyYAML
)PythonでYAMLを扱うには PyYAML
ライブラリを使用します。まずはインストールしましょう。
pip install pyyaml
YAMLファイル config.yaml
:
name: Bob
age: 30
skills:
- Python
- Go
Pythonで読み込むコード:
import yaml
# YAMLファイルを読み込む
def load_yaml(file_path):
with open(file_path, 'r', encoding='utf-8') as file:
data = yaml.safe_load(file)
return data
config = load_yaml('config.yaml')
print(config)
出力例:
{'name': 'Bob', 'age': 30, 'skills': ['Python', 'Go']}
yaml.safe_load()
を使うことで、安全にYAMLをPythonの辞書型データとして読み込めます。
Pythonの辞書データをYAMLファイルに書き出すことも可能です。
data = {
'name': 'Charlie',
'age': 28,
'skills': ['Java', 'Ruby']
}
# YAMLファイルに保存
def save_yaml(file_path, data):
with open(file_path, 'w', encoding='utf-8') as file:
yaml.dump(data, file, allow_unicode=True, default_flow_style=False)
save_yaml('output.yaml', data)
生成される output.yaml
:
name: Charlie
age: 28
skills:
- Java
- Ruby
allow_unicode=True
を指定すると、日本語などの文字も正常に書き出せるdefault_flow_style=False
を指定すると、より可読性の高いフォーマットで書き出せるserver:
host: localhost
port: 8080
users:
- name: Alice
role: admin
- name: Bob
role: user
このような構造も safe_load()
を使えば辞書型データとして扱えます。
config = load_yaml('config.yaml')
print(config['server']['host']) # 'localhost'
print(config['users'][0]['name']) # 'Alice'
YAMLは設定ファイルとして使われることが多いため、アプリケーションの設定情報を保存するのに便利です。
PyYAML
を使うと、PythonでYAMLを簡単に扱えるsafe_load()
でYAMLを辞書型として読み込み、dump()
で書き出しが可能YAMLを活用することで、柔軟なデータ管理が可能になります。