2017/07/07更新

[Pyahon] Yamlファイルを扱う

このエントリーをはてなブックマークに追加            

こんにちは、@yoheiMuneです。
今日はPythonでyamlファイルを扱う方法をブログに書きたいと思います。現状はライブラリを使いますが、メジャーなファイル形式になってきているので、将来的には公式サポートされたらいいなーと思う今日この頃です。
画像


目次




PythonでYamlファイルを扱う

公式ではサポートされていないので、pyyamlというモジュールを使います。他のライブラリもありますがpyyamlがシンプルで良さそうです(現状使っていて困ったことはないです)。

インストール

インストールはpipでインストールできます。
$ pip3 install --upgrade pyyaml

Collecting pyyaml
Installing collected packages: pyyaml
Successfully installed pyyaml-3.12
pip以外のインストール方法は公式ドキュメントをご参照ください。


Yaml文字列からPythonのDictonaryに変換する

Yaml文字列を解釈するには、load関数を利用します。
import yaml

# Yaml文字列
s = """
a: 1
b:
    c: 3
    d: 4
"""

# Yaml文字列 -> Dictonary へ変換.
result = yaml.load(s)

# 表示
print(result)  # {'a': 1, 'b': {'c': 3, 'd': 4}}


DictonaryからYaml文字列に変換する

逆に、Yaml文字列を作成するにはdump関数を使います。jsonモジュールとほとんど一緒ですね。
import yaml

result = {
    'a': 1, 
    'b': {
        'c': 3, 
        'd': 4
    }
}

# 「default_flow_style=False」をつけないと、Yamlらしく出力してくれない
yaml_string = yaml.dump(result, default_flow_style=False)
print(yaml_string)
"""
a: 1
b:
  c: 3
  d: 4
"""
と、こんな感じにYamlとDictonaryとで相互に変換することができます。



さらに詳しく

公式ドキュメントでは、さらに詳しい説明(配列の扱い、データ型の扱い、safe_loadなど)がありますので、必要に応じてご覧ください。

http://pyyaml.org/wiki/PyYAMLDocumentation



最後に

設定ファイルをJSONで作成すると、設定ファイル内にコメントが書けなくて困るんですよね〜。その点、Yamlだとコメントも書けるから素敵。今後もPythonについて色々とブログを書きたいと思います。

最後になりますが本ブログでは、Python・フロントエンド・Go言語・Linux・Node.js・インフラ・開発関連・Swift・Java・機械学習など雑多に情報発信をしていきます。自分の第2の脳にすべく、情報をブログに貯めています。気になった方は、本ブログのRSSTwitterをフォローして頂けると幸いです ^ ^。

最後までご覧頂きましてありがとうございました!





こんな記事もいかがですか?

RSS画像

もしご興味をお持ち頂けましたら、ぜひRSSへの登録をお願い致します。