私は多くのユーザー定義値を保持するためにConfigObj 5.0.6を使用していますが、そのうちのいくつかはネストされています。私はlocal.ini
を使って典型的な値を置き換えます。フロントエンドはないので、ユーザーは必要に応じてconfigsを編集します。これをより簡単で直観的にするために、configオブジェクトの 'root'レベルに属するいくつかの値がありますが、local.ini
ファイルのネストされたセクションの下ではより簡単に理解できます。ConfigObj 'un-nest'セクション
私はlocal.ini
を使用してデフォルトに置き換えています。アプリの流れは、ネストされた値よりもネストされていない値を持つ設定レイアウトを示唆しています。
# un-nested
title = my_title
# nested
[section_1]
val_s1 = val
[section_2]
val_s2 = val
# nested, but I want to be un-nested
val_2 = val
このレイアウトは、予想通り、section_2
下val_2
を置く:
{
'title': 'my_title',
{'section_1': {'val_s1': 'val'}},
{'section_2': {'val_s2': 'val'},
{'val_2': 'val'}}
}
は、それがラインsection_2
以下にval_2
を定義しますが、の「メイン」セクションの下でそれにアクセスすることが可能です設定オブジェクト?
私はこのような設定オブジェクトで終わるしたいと思います:
{
'title': 'my_title',
{'section_1': {'val_s1': 'val'}},
{'section_2': {'val_s2': 'val'}},
'val_2': 'val'
}
コンフィグ辞書の順序はもちろん、重要ではありません。私が興味を持っているのは入れ子セクションを使うことができることですが、.ini
の中からセクションを親に出ます。
私はテストしませんでしたが、最初の行からのすべてをに詰め込み、次に設定オブジェクトをスライスしても問題ありません。すなわち、それが作成するlocal.ini
ように書く:
{
'main_level':
{
'title': 'my_title',
{'section_1': {'val_s1': 'val'}},
{'section_2': {'val_s2': 'val'}},
'val_2': 'val'
}
}
そして、私が最初にconfigオブジェクトをインスタンス化するとき、私はconfig = config['main_level']
を使用することができますが、私はただではない、いくつかの簡単な、正しい方法を欠けている場合、私は思ったんだけどハック。
よくある話です。迅速な応答ありがとう –