[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をフォローして頂けると幸いです ^ ^。
最後までご覧頂きましてありがとうございました!