<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>PyYAML  |  Python-memo｜自動化・AI・Web開発の実験室</title>
	<atom:link href="https://python.cbagames.jp/tag/pyyaml/feed/" rel="self" type="application/rss+xml" />
	<link>https://python.cbagames.jp</link>
	<description>Pythonで、できるをふやそう。</description>
	<lastBuildDate>Tue, 03 Feb 2026 05:54:00 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.1</generator>

<image>
	<url>https://python.cbagames.jp/wp-content/uploads/2025/06/cropped-497d491d54402de785c9e043bfa0620a-32x32.png</url>
	<title>PyYAML  |  Python-memo｜自動化・AI・Web開発の実験室</title>
	<link>https://python.cbagames.jp</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>【Python入門】YAMLファイルの書き方と使い方｜設定ファイルの操作をわかりやすく解説！</title>
		<link>https://python.cbagames.jp/2025/06/16/python-yaml-file-basic/</link>
					<comments>https://python.cbagames.jp/2025/06/16/python-yaml-file-basic/#respond</comments>
		
		<dc:creator><![CDATA[asukapy]]></dc:creator>
		<pubDate>Mon, 16 Jun 2025 02:05:18 +0000</pubDate>
				<category><![CDATA[Python入門]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[PyYAML]]></category>
		<category><![CDATA[YAML]]></category>
		<category><![CDATA[プログラミング入門]]></category>
		<category><![CDATA[初心者向け]]></category>
		<category><![CDATA[設定ファイル]]></category>
		<guid isPermaLink="false">https://python.cbagames.jp/?p=342</guid>

					<description><![CDATA[目次 1. はじめに｜YAMLってなに？Pythonで使うと何ができるの？2. YAMLの基本構文と書き方2.1 キーと値の記述（基本のかたち）2.2 リストの書き方（複数の値）2.3 ネスト（入れ子）の書き方2.4 コ [&#8230;]]]></description>
										<content:encoded><![CDATA[

  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-2"><label class="toc-title" for="toc-checkbox-2">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">1. はじめに｜YAMLってなに？Pythonで使うと何ができるの？</a></li><li><a href="#toc2" tabindex="0">2. YAMLの基本構文と書き方</a><ol><li><a href="#toc3" tabindex="0">2.1 キーと値の記述（基本のかたち）</a></li><li><a href="#toc4" tabindex="0">2.2 リストの書き方（複数の値）</a></li><li><a href="#toc5" tabindex="0">2.3 ネスト（入れ子）の書き方</a></li><li><a href="#toc6" tabindex="0">2.4 コメントの書き方</a></li></ol></li><li><a href="#toc7" tabindex="0">3. YAMLの発展的な書き方</a><ol><li><a href="#toc8" tabindex="0">3.1 アンカー（&amp;）とエイリアス（*）</a></li><li><a href="#toc9" tabindex="0">3.2 マージキー（&lt;&lt;:）</a></li><li><a href="#toc10" tabindex="0">3.3 複数行文字列の書き方</a><ol><li><a href="#toc11" tabindex="0">|（パイプ）: 改行をそのまま保持</a></li><li><a href="#toc12" tabindex="0">&gt;（折りたたみ）: 改行をスペースに変換</a></li><li><a href="#toc13" tabindex="0">|-（最後の改行を除去）</a></li><li><a href="#toc14" tabindex="0">"と\を使って改行なしの長文にする</a></li></ol></li><li><a href="#toc15" tabindex="0">3.4 コメントを使って読みやすく！</a></li></ol></li><li><a href="#toc16" tabindex="0">4. PythonでYAMLファイルを読み書きする方法</a><ol><li><a href="#toc17" tabindex="0">4.1 PyYAMLのインストール</a></li><li><a href="#toc18" tabindex="0">4.2 YAMLファイルを読み込む（safe_load）</a></li><li><a href="#toc19" tabindex="0">4.3 読み込んだデータにアクセスする</a></li><li><a href="#toc20" tabindex="0">4.4 PythonのデータをYAMLとして保存する（safe_dump）</a></li><li><a href="#toc21" tabindex="0">4.5 補足：loadとsafe_loadの違い</a></li></ol></li><li><a href="#toc22" tabindex="0">5. よくあるミスとエラー対処</a><ol><li><a href="#toc23" tabindex="0">5.1 インデントミス</a></li><li><a href="#toc24" tabindex="0">5.2 クォートの忘れ・必要以上の使用</a></li><li><a href="#toc25" tabindex="0">5.3 safe_load vs load の使い分け</a></li><li><a href="#toc26" tabindex="0">5.4 Unicodeエラー（文字化け）</a></li><li><a href="#toc27" tabindex="0">5.5 コメントの位置</a></li></ol></li><li><a href="#toc28" tabindex="0">6. まとめ｜YAMLを使えば設定ファイルの管理がラクになる！</a><ol><li><a href="#toc29" tabindex="0">🔑 今回のポイントをおさらい！</a></li></ol></li><li><a href="#toc30" tabindex="0">あわせて読みたい｜YAMLと相性のいいPython活用記事</a><ol><li><a href="#toc31" tabindex="0">🔗 Pythonの設定ファイル・データ形式に関する記事</a></li><li><a href="#toc32" tabindex="0">🔗 Pythonのファイル操作や自動化に関する記事</a></li></ol></li><li><a href="#toc33" tabindex="0">よくある質問（Q&amp;A）</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">1. はじめに｜YAMLってなに？Pythonで使うと何ができるの？</span></h2>



<p>Pythonでプログラムを書いていると、<br>「設定値ってどこに書けばいいの？」<br>「コードを書き換えずに、動作だけ変えたい…」<br>と悩む場面、ありませんか？</p>



<p>たとえば、</p>



<ul class="wp-block-list">
<li>デバッグモードをON / OFFで切り替えたい</li>



<li>環境ごとにデータベースのURLを変えたい</li>



<li>APIキーや設定値をコードから分離したい</li>
</ul>



<p>こうしたケースでは、<strong>設定ファイルを使う設計</strong>がとても重要になります。</p>



<p>そこでよく使われるのが、<strong>YAML（ヤムル）ファイル</strong>です。<br>YAMLは、Pythonの辞書構造と相性がよく、<strong>人間にも読みやすい設定ファイル形式</strong>として、Webアプリ開発や業務スクリプト、API連携など幅広い現場で利用されています。</p>



<p>「JSONは触ったことがあるけど、YAMLは初めて」<br>「YAMLってインデントが難しそう…」</p>



<p>そんな不安を感じている方でも大丈夫です 😊<br>YAMLは基本ルールさえ押さえれば、<strong>Python初心者でも直感的に使える</strong>ファイル形式なんです。</p>



<p>この記事では、</p>



<ul class="wp-block-list">
<li>YAMLファイルの基本的な書き方</li>



<li>PythonからYAMLを読み書きする方法</li>



<li>設定ファイルとしてYAMLを使うメリット</li>
</ul>



<p>を中心に、<strong>初心者向けにやさしく・実例ベースで解説</strong>していきます。</p>



<p>Pythonでの設定管理を一段レベルアップしたい方は、ぜひ最後まで読んでみてください！</p>


<p><script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-2494518121553371"
     crossorigin="anonymous"></script><br />
<ins class="adsbygoogle"
     style="display:block; text-align:center;"
     data-ad-layout="in-article"
     data-ad-format="fluid"
     data-ad-client="ca-pub-2494518121553371"
     data-ad-slot="2936039508"></ins><br />
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script></p>



<h2 class="wp-block-heading"><span id="toc2">2. YAMLの基本構文と書き方</span></h2>



<p>YAMLファイルは、<strong>Pythonで使われる辞書やリストに近い感覚</strong>で書けるのが特徴です。<br>ここではYAMLの基本的な書き方を、初心者向けにわかりやすく解説していきます！</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc3">2.1 キーと値の記述（基本のかたち）</span></h3>



<p>YAMLの基本は「キー: 値」のペアで構成されています。</p>



<pre class="wp-block-preformatted"><code>title: あなたのアプリ<br>version: 1.0<br>debug: true<br></code></pre>



<ul class="wp-block-list">
<li>値に文字列を書く場合、<strong>クォート（<code>"</code>や<code>'</code>）は基本不要</strong>です。</li>



<li>数値もそのまま書けます。</li>



<li><strong>true / false / yes / no</strong> も真偽値として扱われます。</li>



<li>**null値（PythonでいうNone）**は <code>null</code> または <code>~</code> で表現します。</li>
</ul>



<pre class="wp-block-preformatted"><code>maintenance: false<br>max_users: 100<br>api_url: "https://example.com"  # 数値や真偽値と区別したいときはクォートを使う<br>description: null<br></code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc4">2.2 リストの書き方（複数の値）</span></h3>



<p>リスト（配列）を記述するには、各行の先頭に「ハイフン <code>-</code>」をつけます。</p>



<pre class="wp-block-preformatted"><code>allow_hosts:<br>  - localhost<br>  - 127.0.0.1<br>  - 192.168.1.1<br></code></pre>



<p>Pythonのリストと同じ感覚で使えます！</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc5">2.3 ネスト（入れ子）の書き方</span></h3>



<p>値の中にさらに辞書（オブジェクト）を持たせたい場合は、<strong>インデント</strong>で階層を表現します。</p>



<pre class="wp-block-preformatted"><code>database:<br>  host: localhost<br>  port: 3306<br>  username: user<br>  password: pass<br></code></pre>



<p>✅インデントのルール</p>



<ul class="wp-block-list">
<li>半角スペースでインデントします（<strong>タブは使いません！</strong>）</li>



<li>Pythonと同じく、階層ごとに2〜4つのスペースが一般的です（本記事では2スペース）</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc6">2.4 コメントの書き方</span></h3>



<p>YAMLでは、<code>#</code> を使ってコメントを書くことができます。</p>



<pre class="wp-block-preformatted"><code>debug: true  # デバッグモードを有効にする<br></code></pre>



<p>設定ファイルとして使うとき、メモや注意点を残しておくのに便利です。</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box not-nested-style cocoon-block-balloon"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://python.cbagames.jp/wp-content/uploads/2025/06/9d9697ea94c9608a27d0bde31599ba86-150x150.jpg" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p>ここまでがYAMLの「基本のき」。<br>次はもう少し高度なテクニック――<strong>アンカー、マージ、複数行文字列</strong>などを紹介していきます！</p>
</div></div>



<hr class="wp-block-separator has-alpha-channel-opacity"/>


<p><script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-2494518121553371"
     crossorigin="anonymous"></script><br />
<ins class="adsbygoogle"
     style="display:block; text-align:center;"
     data-ad-layout="in-article"
     data-ad-format="fluid"
     data-ad-client="ca-pub-2494518121553371"
     data-ad-slot="2936039508"></ins><br />
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script></p>



<h2 class="wp-block-heading"><span id="toc7">3. YAMLの発展的な書き方</span></h2>



<p>YAMLの基本的な書き方を覚えたら、次は<strong>もっと便利に使うためのテクニック</strong>を学びましょう。<br>ここでは、プロの現場でもよく使われる「アンカー」「マージ」「複数行文字列」などの発展的な記述方法をご紹介します！</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc8">3.1 アンカー（&amp;）とエイリアス（*）</span></h3>



<p>同じ内容を何度も書くのって面倒ですよね？<br>YAMLでは「アンカーとエイリアス」を使えば、<strong>値の再利用が可能</strong>です！</p>



<pre class="wp-block-preformatted"><code>common_settings: &amp;default_settings<br>  timeout: 30<br>  retries: 5<br><br>dev_env:<br>  &lt;&lt;: *default_settings  # 上の内容を再利用<br>  debug: true<br><br>prod_env:<br>  &lt;&lt;: *default_settings<br>  debug: false<br></code></pre>



<p>✅ここがポイント</p>



<ul class="wp-block-list">
<li><code>&amp;名前</code> で再利用可能な設定（アンカー）を作る</li>



<li><code>*名前</code> でその設定（エイリアス）を呼び出す</li>



<li><code>&lt;&lt;:</code> を使えば、<strong>辞書ごとマージ</strong>できる（後述）</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc9">3.2 マージキー（&lt;&lt;:）</span></h3>



<p>マージキーを使うと、<strong>複数の設定を1つに合体</strong>できます。</p>



<pre class="wp-block-preformatted"><code>default: &amp;default<br>  port: 8080<br>  host: localhost<br><br>custom:<br>  &lt;&lt;: *default  # 上の内容をマージ<br>  port: 9090    # 上書き可能<br></code></pre>



<p>このように、再利用＆カスタマイズが簡単にできます。<br>設定ファイルをきれいに整理したいときにとても便利です！</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc10">3.3 複数行文字列の書き方</span></h3>



<p>YAMLは<strong>改行を含んだ長文</strong>や<strong>折り返し文字列</strong>も記述できます。</p>



<h4 class="wp-block-heading"><span id="toc11">|（パイプ）: 改行をそのまま保持</span></h4>



<pre class="wp-block-preformatted"><code>notes: |<br>  このアプリでは以下のことに注意してください。<br>  - 通信エラーが起きたときは再接続されます。<br>  - 設定変更後は再起動してください。<br></code></pre>



<h4 class="wp-block-heading"><span id="toc12">&gt;（折りたたみ）: 改行をスペースに変換</span></h4>



<pre class="wp-block-preformatted"><code>description: &gt;<br>  このアプリは、ユーザーの利便性を<br>  向上させるために設計されています。<br></code></pre>



<h4 class="wp-block-heading"><span id="toc13">|-（最後の改行を除去）</span></h4>



<pre class="wp-block-preformatted"><code>footer: |-<br>  これでYAMLの説明は終わりです。<br></code></pre>



<h4 class="wp-block-heading"><span id="toc14">"と\を使って改行なしの長文にする</span></h4>



<pre class="wp-block-preformatted"><code>long_text: "この文章はとても長くて\<br>  複数行にまたがって書かれていますが\<br>  改行は一切入りません。"<br></code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc15">3.4 コメントを使って読みやすく！</span></h3>



<p>すでに紹介しましたが、YAMLでは<strong>行の末尾や単独行に<code>#</code>でコメント</strong>を書けます。</p>



<pre class="wp-block-preformatted"><code>api_key: "your-key-here"  # 本番環境では絶対に公開しない！<br></code></pre>



<p>チーム開発や後から読み返すときに、とても役立ちます。</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box not-nested-style cocoon-block-balloon"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://python.cbagames.jp/wp-content/uploads/2025/06/9d9697ea94c9608a27d0bde31599ba86-150x150.jpg" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p>ここまで学べば、もうあなたもYAMLマスターの第一歩です！<br>次はいよいよ、「PythonでYAMLファイルを読み書きする方法」に入っていきましょう。</p>
</div></div>



<hr class="wp-block-separator has-alpha-channel-opacity"/>


<p><script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-2494518121553371"
     crossorigin="anonymous"></script><br />
<ins class="adsbygoogle"
     style="display:block; text-align:center;"
     data-ad-layout="in-article"
     data-ad-format="fluid"
     data-ad-client="ca-pub-2494518121553371"
     data-ad-slot="2936039508"></ins><br />
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script></p>



<h2 class="wp-block-heading"><span id="toc16">4. PythonでYAMLファイルを読み書きする方法</span></h2>



<p>YAMLファイルの書き方がわかったところで、今度は<strong>PythonからYAMLファイルを読み込んだり、書き込んだりする方法</strong>を紹介します！<br>Pythonでは「PyYAML（パイ・ヤムル）」というライブラリを使うのが定番です。</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc17">4.1 PyYAMLのインストール</span></h3>



<p>まずは、YAMLを扱えるようにするためのライブラリをインストールしましょう。</p>



<pre class="wp-block-preformatted"><code>pip install PyYAML<br></code></pre>



<p>これだけで準備OKです！</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc18">4.2 YAMLファイルを読み込む（safe_load）</span></h3>



<p>次に、実際のYAMLファイルをPythonで読み込んでみましょう。</p>



<pre class="wp-block-preformatted"><code>import yaml<br><br># YAMLファイルを読み込む<br>with open("config.yaml", "r", encoding="utf-8") as f:<br>    data = yaml.safe_load(f)<br><br>print(data)<br></code></pre>



<p>このコードでは、<code>config.yaml</code> というファイルを開いて、その中身を <code>data</code> という変数に辞書として読み込んでいます。<br><strong><code>safe_load()</code></strong> は、安全に読み込むための関数で、通常はこちらを使えばOKです！</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc19">4.3 読み込んだデータにアクセスする</span></h3>



<p>読み込んだYAMLの内容は、Pythonの<strong>辞書やリスト</strong>として扱えます。</p>



<pre class="wp-block-preformatted"><code># config.yaml の中身<br>app:<br>  name: あなたのアプリ<br>  debug: true<br></code></pre>



<pre class="wp-block-preformatted"><code>print(data["app"]["name"])     # → あなたのアプリ<br>print(data["app"]["debug"])    # → True<br></code></pre>



<p>Pythonでよく使う<code>dict</code>の感覚で、サクサクアクセスできますね！</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc20">4.4 PythonのデータをYAMLとして保存する（safe_dump）</span></h3>



<p>YAMLファイルを<strong>Pythonから作成・保存したいとき</strong>は、こちらの方法を使います。</p>



<pre class="wp-block-preformatted"><code>import yaml<br><br># 保存したいデータ（辞書形式）<br>data = {<br>    "app": {<br>        "name": "あなたのアプリ",<br>        "version": "1.0",<br>        "debug": True<br>    }<br>}<br><br># YAMLファイルとして書き出す<br>with open("output.yaml", "w", encoding="utf-8") as f:<br>    yaml.safe_dump(data, f, allow_unicode=True)<br></code></pre>



<p>✅ポイント解説</p>



<ul class="wp-block-list">
<li><code>allow_unicode=True</code> をつけると、<strong>日本語も文字化けせずに出力</strong>されます。</li>



<li>辞書・リストをそのまま書き出せるので、<strong>設定ファイルの自動生成</strong>にも便利です。</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc21">4.5 補足：loadとsafe_loadの違い</span></h3>



<p><code>yaml.load()</code> も使えますが、これは <strong>信頼できないデータに対して使うと危険</strong>です。<br>そのため、基本的には <code>yaml.safe_load()</code> を使うようにしましょう！</p>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box not-nested-style cocoon-block-balloon"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://python.cbagames.jp/wp-content/uploads/2025/06/9d9697ea94c9608a27d0bde31599ba86-150x150.jpg" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p>このように、PythonとYAMLを組み合わせれば、<strong>柔軟で読みやすい設定ファイルの管理</strong>ができるようになります。</p>
</div></div>



<hr class="wp-block-separator has-alpha-channel-opacity"/>


<p><script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-2494518121553371"
     crossorigin="anonymous"></script><br />
<ins class="adsbygoogle"
     style="display:block; text-align:center;"
     data-ad-layout="in-article"
     data-ad-format="fluid"
     data-ad-client="ca-pub-2494518121553371"
     data-ad-slot="2936039508"></ins><br />
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script></p>



<h2 class="wp-block-heading"><span id="toc22">5. よくあるミスとエラー対処</span></h2>



<p>YAMLは人間にとって読みやすいフォーマットですが、<strong>書き方のルールを少し間違えるとエラーになりやすい</strong>という特徴もあります。<br>ここでは、初心者がつまずきやすいポイントと、その対処法をわかりやすく解説します。</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc23">5.1 インデントミス</span></h3>



<p><strong>最も多いミスが、スペースの数の違いによるエラー</strong>です。<br>YAMLでは、インデント（字下げ）に<strong>半角スペースを使う</strong>のがルールです。<strong>タブキー（Tab）を使うとエラーになります！</strong></p>



<p>❌ ダメな例（タブとスペースが混ざっている）:</p>



<pre class="wp-block-preformatted"><code>app:<br>    name: あなたのアプリ  # ← スペース4つ<br>	version: 1.0         # ← タブ1つ → エラー！<br></code></pre>



<p>✅ 正しい例（スペースのみでインデント）:</p>



<pre class="wp-block-preformatted"><code>app:<br>  name: あなたのアプリ<br>  version: 1.0<br></code></pre>



<p><strong>エディタで「インデントをスペースに統一」する設定にしておくと安心</strong>です！</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc24">5.2 クォートの忘れ・必要以上の使用</span></h3>



<p>基本的にYAMLではクォート（<code>"</code>や<code>'</code>）は不要ですが、<strong>以下のようなケースでは明示的に囲む方が安全</strong>です。</p>



<pre class="wp-block-preformatted"><code>password: "123456"  # 数値扱いにならないようにクォートする<br>enabled: "no"       # true/falseに誤認識されないように<br></code></pre>



<p><code>yes</code>や<code>no</code>、<code>on</code>や<code>off</code>などの言葉も、YAMLでは<strong>真偽値と判断される</strong>ため注意しましょう。</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc25">5.3 safe_load vs load の使い分け</span></h3>



<pre class="wp-block-preformatted"><code>yaml.load(f)  # 危険なコードを実行される可能性あり<br>yaml.safe_load(f)  # 安全に読み込みたいときはこちら<br></code></pre>



<p><code>yaml.load()</code> は便利ですが、<strong>信頼できないYAMLファイルを読み込むとセキュリティリスク</strong>が生じることがあります。<br>基本的には <code>safe_load()</code> を使いましょう！</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc26">5.4 Unicodeエラー（文字化け）</span></h3>



<p>日本語を含むYAMLファイルを扱うときは、<strong>文字コードの指定を忘れずに！</strong></p>



<pre class="wp-block-preformatted"><code>with open("config.yaml", "r", encoding="utf-8") as f:<br></code></pre>



<p>さらに、書き出し時には <code>allow_unicode=True</code> を指定すると、<strong>日本語がきれいに保存</strong>されます。</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc27">5.5 コメントの位置</span></h3>



<p>コメントは <code>#</code> を使えば書けますが、<strong>値の中に書いてしまうとエラーになります。</strong></p>



<p>❌ 間違った例：</p>



<pre class="wp-block-preformatted"><code>name: あなたのアプリ #コメント ← 正しそうに見えて、値の一部になることがある<br></code></pre>



<p>✅ 正しい例：</p>



<pre class="wp-block-preformatted"><code># アプリの名前を設定<br>name: "あなたのアプリ"  # ← クォートで明示すれば安全<br></code></pre>



<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-1 sbs-stn sbp-l sbis-cb cf block-box not-nested-style cocoon-block-balloon"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://python.cbagames.jp/wp-content/uploads/2025/06/9d9697ea94c9608a27d0bde31599ba86-150x150.jpg" alt="" class="speech-icon-image"/></figure><div class="speech-name"></div></div><div class="speech-balloon">
<p>こうしたポイントを押さえておくことで、<strong>YAMLによる設定ファイルのエラーを未然に防ぐことができます</strong>。<br>次は記事のまとめに進みましょう！</p>
</div></div>



<hr class="wp-block-separator has-alpha-channel-opacity"/>


<p><script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-2494518121553371"
     crossorigin="anonymous"></script><br />
<ins class="adsbygoogle"
     style="display:block; text-align:center;"
     data-ad-layout="in-article"
     data-ad-format="fluid"
     data-ad-client="ca-pub-2494518121553371"
     data-ad-slot="2936039508"></ins><br />
<script>
     (adsbygoogle = window.adsbygoogle || []).push({});
</script></p>



<h2 class="wp-block-heading"><span id="toc28">6. まとめ｜YAMLを使えば設定ファイルの管理がラクになる！</span></h2>



<p>今回は、<strong>PythonでYAMLファイルを扱う方法</strong>を初心者向けにやさしく解説してきました。</p>



<p>YAMLは、見た目もスッキリしていて、Pythonの辞書やリストに似ているので、<strong>Pythonユーザーとの相性がとても良いフォーマット</strong>です。<br>特に「設定ファイル」として使えば、プログラムの動作を外部からコントロールできて、<strong>環境ごとの切り替えやデプロイがとてもスムーズになります</strong>。</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc29">🔑 今回のポイントをおさらい！</span></h3>



<ul class="wp-block-list">
<li>YAMLは<code>キー: 値</code>で書けるシンプルな構造</li>



<li>ネストやリストもスペースやハイフンでわかりやすく記述可能</li>



<li>Pythonでは<code>PyYAML</code>ライブラリを使って簡単に読み書きできる</li>



<li><code>safe_load()</code>と<code>safe_dump()</code>を使えば、安全かつ快適にデータを扱える</li>



<li>コメントや複数行文字列、マージ構文など、便利な機能も豊富！</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p>YAMLを使いこなせるようになれば、あなたのアプリの<strong>設定や構成管理が格段に効率化</strong>されます。<br>今後、Flask、Django、FastAPIなどのフレームワークでも、YAML形式での設定ファイルを目にする機会が増えていくはずです。</p>



<p>最初は少し戸惑うかもしれませんが、この記事を何度か読み返して、ぜひ自分のプロジェクトでも活用してみてくださいね 😊</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><span id="toc30">あわせて読みたい｜YAMLと相性のいいPython活用記事</span></h2>



<p>YAMLは設定ファイルとしてよく使われますが、それ以外にも<strong>ファイル形式や構成管理、データ操作</strong>といったテーマとも関係が深いです。以下の記事もあわせて読むことで、より理解が深まりますよ！</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc31">🔗 Pythonの設定ファイル・データ形式に関する記事</span></h3>



<ul class="wp-block-list">
<li>✅ <a target="_blank" href="https://python.cbagames.jp/2025/06/13/python-json-module-guide/">【Python入門】jsonモジュールの使い方とJSONの基本</a><br>　JSONとYAMLの違いを理解したいなら、こちらも読んでおくと安心です！</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><span id="toc32">🔗 Pythonのファイル操作や自動化に関する記事</span></h3>



<ul class="wp-block-list">
<li>✅ <a target="_blank" href="https://python.cbagames.jp/2025/06/14/python-desktop-app-pysimplegui/">【Python入門】デスクトップアプリ開発入門｜PySimpleGUIでGUI作成</a><br>　GUIアプリの設定ファイルとしてYAMLを使う場面にも活かせます！</li>



<li>✅ <a target="_blank" href="https://python.cbagames.jp/2025/06/14/python-pandas-dataframe-basic/">【Python入門】Pandasの使い方完全ガイド｜DataFrame操作と分析の基本</a><br>　データの扱いに慣れてきたら、次はPandasでの表形式データ分析にも挑戦してみましょう！</li>



<li>✅ <a target="_blank" href="https://python.cbagames.jp/2025/06/13/python-relativedelta-calendar-guide/">【Python入門】Pythonで日付計算・カレンダー操作を簡単に！relativedeltaとcalendarの使い方ガイド</a><br>　YAMLに日時設定を書く際に知っておくと便利な、日付の扱い方はこちら。</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h2 class="wp-block-heading"><span id="toc33">よくある質問（Q&amp;A）</span></h2>



<div class="wp-block-cocoon-blocks-faq faq-wrap blank-box block-box not-nested-style cocoon-block-faq"><dl class="faq"><dt class="faq-question faq-item"><div class="faq-question-label faq-item-label">Q</div><div class="faq-question-content faq-item-content">YAMLとJSON、どちらを使えばいいの？</div></dt><dd class="faq-answer faq-item"><div class="faq-answer-label faq-item-label">A</div><div class="faq-answer-content faq-item-content">
<p><strong>用途によって使い分けましょう！</strong></p>



<ul class="wp-block-list">
<li><strong>JSON</strong>：システム間のデータ通信（APIレスポンスなど）に向いています。マシンにとって扱いやすい形式。</li>



<li><strong>YAML</strong>：設定ファイルや構成定義など、人が手で編集する用途に適しています。読みやすさ重視。</li>
</ul>



<p>Pythonではどちらも扱えますが、<strong>設定ファイルにはYAML、通信にはJSON</strong>が一般的です。</p>
</div></dd></dl></div>



<div class="wp-block-cocoon-blocks-faq faq-wrap blank-box block-box not-nested-style cocoon-block-faq"><dl class="faq"><dt class="faq-question faq-item"><div class="faq-question-label faq-item-label">Q</div><div class="faq-question-content faq-item-content">YAMLファイルを読み込むとエラーが出ます。何が原因？</div></dt><dd class="faq-answer faq-item"><div class="faq-answer-label faq-item-label">A</div><div class="faq-answer-content faq-item-content">
<p><strong>インデントや記述ミスが多いです！</strong></p>



<p>よくある原因は以下の通り：</p>



<ul class="wp-block-list">
<li>タブ（Tab）ではなく<strong>半角スペースでインデント</strong>する必要がある</li>



<li><code>:</code> のあとにスペースがない</li>



<li>リストの書き方（<code>-</code>）が間違っている</li>



<li>クォートで囲むべき文字列（例: <code>yes</code> や <code>1234</code>）を囲んでいない</li>
</ul>



<p>エディタにYAML構文チェッカーを入れるとミスに気づきやすくなります！</p>
</div></dd></dl></div>



<div class="wp-block-cocoon-blocks-faq faq-wrap blank-box block-box not-nested-style cocoon-block-faq"><dl class="faq"><dt class="faq-question faq-item"><div class="faq-question-label faq-item-label">Q</div><div class="faq-question-content faq-item-content">safe_loadとloadの違いはなんですか？</div></dt><dd class="faq-answer faq-item"><div class="faq-answer-label faq-item-label">A</div><div class="faq-answer-content faq-item-content">
<p><strong><code>safe_load</code>は安全な読み込み用、<code>load</code>は高機能だけど危険な場合も。</strong></p>



<ul class="wp-block-list">
<li><code>safe_load()</code> → 標準的なYAMLデータを安全に読み込む（おすすめ）</li>



<li><code>load()</code> → Pythonオブジェクトも読み込めるが、<strong>信頼できないファイルでは使わないで！</strong></li>
</ul>



<p>普段は <code>safe_load()</code> を使えばOKです。</p>
</div></dd></dl></div>
]]></content:encoded>
					
					<wfw:commentRss>https://python.cbagames.jp/2025/06/16/python-yaml-file-basic/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
