ライブラリ紹介[6/100]: OmegaConf
前書き
今回は、OmegaConfを紹介します。
OmegaConf
pythonのConfigrationフレームワークのひとつです。設定ファイルの管理のために使用します。
標準ライブラリに含まれるconfigparserもConfigurationに使用されるモジュールの1つです。
フレームワークとライブラリは厳密には違うものを意味しますが、ここでは区別せずに紹介していきます。
インストール
pip install omegaconf
使い方
OmegaConfオブジェクトを作成
辞書型のオブジェクトから設定を表すOmegaConfオブジェクトを作成することができます。
>>> from omegaconf import OmegaConf >>> >>> o = { ... "client1": {"company": "Tanaka-Company", "name": "Tanaka"}, ... "client2": {"company": "Sato-Company", "name": "Sato"}, ... } >>> >>> config = OmegaConf.create(o) # OmegaConfオブジェクトを作成 >>> print(config.client1) # 属性値としてアクセス {'company': 'Tanaka-Company', 'name': 'Tanaka'} >>> print(config["client2"]) # keyを指定してアクセス {'company': 'Sato-Company', 'name': 'Sato'}
yamlを出力
>>> y = OmegaConf.to_yaml(config) >>> print(y) client1: company: Tanaka-Company name: Tanaka client2: company: Sato-Company name: Sato >>> with open("client_config.yaml", "w") as f: ... f.write(y) ... 96
yamlを読み込み
yamlからOmegaConfオブジェクトを作成することできます。
>>> config = OmegaConf.load("client_config.yaml") >>> print(config) {'client1': {'company': 'Tanaka-Company', 'name': 'Tanaka'}, 'client2': {'company': 'Sato-Company', 'name': 'Sato'}}
OmageConfオブジェクトの結合
複数のOmegaConfオブジェクトを結合することができます。
>>> o1 = {"client1": {"company": "Tanaka-Company", "name": "Tanaka"}} >>> o2 = {"client2": {"company": "Sato-Company", "name": "Sato"}} >>> >>> config1 = OmegaConf.create(o1) # OmegaConfオブジェクトを作成 >>> config2 = OmegaConf.create(o2) # OmegaConfオブジェクトを作成 >>> config = OmegaConf.merge(o1, o2) # OmegaConfオブジェクトを結合 >>> print(config.client1) {'company': 'Tanaka-Company', 'name': 'Tanaka'} >>> print(config["client2"]) {'company': 'Sato-Company', 'name': 'Sato'}
後書き
お疲れ様でした。
OmegaConfを簡単に紹介しました。
OmegaConfにはまだまだ便利な機能がたくさんあるので、githubを覗いて見てください!
ライブラリ紹介[5/100] simplejson
前書き
今回は、simplejsonを紹介します。
simplejson
pythonでjsonを扱うためのライブラリです。
pythonにはjson
という標準ライブラリもあります。
json
とsimplejson
は同じものですが、simplejson
の方が更新頻度が高いです。
jsonとは
yamlと同じように、構造化データを表現するためのフォーマットです。
JavaScript Object Notationの略で、JavaScriptのObject定義と同じような書き方をします。
install
pip install simplejson
使い方
json書き込み
これまでのyaml・tomlと同じように辞書型のオブジェクトを書き込むことができます。
>>> try: ... import simplejson as json ... except ImportError: ... import json ... >>> j = { ... "client1": {"company": "Tanaka-Company", "name": "Tanaka"}, ... "client2": {"company": "Sato-Company", "name": "Sato"}, ... } >>> with open("client.json", "w") as f: ... json.dump(j, f)
json読み込み
>>> try: ... import simplejson as json ... except ImportError: ... import json ... >>> with open("client.json", "r") as f: ... j = json.load(f) ... >>> import pprint # 出力を整形する >>> pp = pprint.PrettyPrinter(indent=4) >>> pp.pprint(j) { 'client1': {'company': 'Tanaka-Company', 'name': 'Tanaka'}, 'client2': {'company': 'Sato-Company', 'name': 'Sato'}}
後書き
ライブラリ紹介[4/100]: toml
前書き
今回は、tomlを紹介します。
toml
pythonでtomlを扱うためのライブラリです。
tomlとは
yamlと同じように、構造化データを表現するためのフォーマットです。
Tom's Obvious, Minimal Languageの略です。
インストール
pip install toml
使い方
前回紹介したpyyamlとほとんど同じです。
tomlの書き込み
辞書型のオブジェクトを書き込むことができます。
>>> import toml >>> t = { ... "client1": {"company": "Tanaka-Company", "name": "Tanaka"}, ... "client2": {"company": "Sato-Company", "name": "Sato"}, ... } >>> with open("client.toml", "w") as f: ... toml.dump(t, f) ... '[client1]\ncompany = "Tanaka-Company"\nname = "Tanaka"\n\n[client2]\ncompany = "Sato-Company"\nname = "Sato"\n'
tomlの読み込み
>>> impor toml >>> with open("client.toml", "r") as f: ... t = toml.load(f) ... >>> import pprint # 出力を整形する >>> >>> pp = pprint.PrettyPrinter(indent=4) >>> pp.pprint(t) { 'client1': {'company': 'Tanaka-Company', 'name': 'Tanaka'}, 'client2': {'company': 'Sato-Company', 'name': 'Sato'}}
後書き
お疲れ様でした。次回は、simplejsonを紹介します。
ライブラリ紹介[3/100]: pyyaml
前書き
今回は、pyyamlを紹介します。
pyyaml
名前の通りpythonでyamlを扱うためのライブラリです。
yamlとは
構造化データを表現するためのフォーマットです。
YAML Ain't Markup Languageの略です。
インストール
pip install pyyaml
使い方
yamlの書き込み
辞書型のオブジェクトを書き込むことができます。
>>> import yaml >>> y = { ... "client1": {"company": "Tanaka-Company", "name": "Tanaka"}, ... "client2": {"company": "Sato-Company", "name": "Sato"}, ... } >>> >>> with open("client.yaml", "w") as f: ... yaml.dump(y, f)
yamlの読み込み
上で書き込んだyamlを読み込んでみましょう。
>>> import yaml >>> with open("client.yaml", "r") as f: ... y = yaml.safe_load(f) ... >>> import pprint # 出力を整形する >>> pp = pprint.PrettyPrinter(indent=4) >>> pp.pprint(y) { 'client1': {'company': 'Tanaka-Company', 'name': 'Tanaka'}, 'client2': {'company': 'Sato-Company', 'name': 'Sato'}}
後書き
お疲れ様でした。次回はtomlを扱うライブラリを紹介します。