[Pyahon] Yamlファイルを扱う
こんにちは、@yoheiMuneです。
今日はPythonでyamlファイルを扱う方法をブログに書きたいと思います。現状はライブラリを使いますが、メジャーなファイル形式になってきているので、将来的には公式サポートされたらいいなーと思う今日この頃です。
http://pyyaml.org/wiki/PyYAMLDocumentation
最後になりますが本ブログでは、Python・フロントエンド・Go言語・Linux・Node.js・インフラ・開発関連・Swift・Java・機械学習など雑多に情報発信をしていきます。自分の第2の脳にすべく、情報をブログに貯めています。気になった方は、本ブログのRSSやTwitterをフォローして頂けると幸いです ^ ^。
最後までご覧頂きましてありがとうございました!
今日はPythonでyamlファイルを扱う方法をブログに書きたいと思います。現状はライブラリを使いますが、メジャーなファイル形式になってきているので、将来的には公式サポートされたらいいなーと思う今日この頃です。
目次
PythonでYamlファイルを扱う
公式ではサポートされていないので、pyyamlというモジュールを使います。他のライブラリもありますがpyyamlがシンプルで良さそうです(現状使っていて困ったことはないです)。インストール
インストールはpipでインストールできます。$ pip3 install --upgrade pyyaml Collecting pyyaml Installing collected packages: pyyaml Successfully installed pyyaml-3.12pip以外のインストール方法は公式ドキュメントをご参照ください。
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の脳にすべく、情報をブログに貯めています。気になった方は、本ブログのRSSやTwitterをフォローして頂けると幸いです ^ ^。
最後までご覧頂きましてありがとうございました!