Python開発では、構成ファイルは多くの場合、jsonの形式のファイルで記述されます。
Bunch
は、構成ファイルを構成クラスと構成辞書に変換できます。
>>> b =Bunch()>>> b.hello ='world'>>> b.hello
' world'>>> b['hello']+="!">>> b.hello
' world!'>>> b.foo =Bunch(lol=True)>>> b.foo.lol
True
>>> b.foo is b['foo']
True
>>> b.keys()['foo','hello']>>> b.update({'ponies':'are pretty!'}, hello=42)>>> print repr(b)Bunch(foo=Bunch(lol=True), hello=42, ponies='are pretty!')>>>[(k,b[k])for k in b ][('ponies','are pretty!'),('foo',Bunch(lol=True)),('hello',42)]>>>"The {knights} who say {ni}!".format(**Bunch(knights='lolcats', ni='can haz'))'The lolcats who say can haz!'
>>> b =Bunch(foo=Bunch(lol=True), hello=42, ponies='are pretty!')>>>import json
>>> json.dumps(b)'{"ponies": "are pretty!", "foo": {"lol": true}, "hello": 42}'
>>> b =Bunch(foo=Bunch(lol=True), hello=42, ponies='are pretty!')>>>import yaml
>>> yaml.dump(b)'!bunch.Bunch\nfoo: !bunch.Bunch {lol: true}\nhello: 42\nponies: are pretty!\n'>>> yaml.safe_dump(b)'foo: {lol: true}\nhello: 42\nponies: are pretty!\n'
import json
from bunch import Bunch
def get_config_from_json(json_file):"""
構成ファイルを構成クラスに変換する
: param json_file:jsonファイル
: return:構成情報
"""
withopen(json_file,'r')as config_file:
config_dict = json.load(config_file) #構成辞書
config =Bunch(config_dict) #構成辞書をクラスに変換する
return config, config_dict
https://juejin.im/post/5aded5b7518825671b022c18
https://pypi.org/project/bunch/