ConfigObj 'un-nest' 个部分
ConfigObj 'un-nest' sections
我正在使用 ConfigObj 5.0.6 来保存许多用户定义的值,其中一些是嵌套的。我使用 local.ini
来取代典型值。没有前端,因此用户可以根据需要编辑配置。为了使这更容易和更直观,有一些值属于配置对象的 'root' 级别,但在 local.ini
文件的嵌套部分下面更容易理解。
我正在使用 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
正如预期的那样,此布局将 val_2
置于 section_2
下:
{
'title': 'my_title',
{'section_1': {'val_s1': 'val'}},
{'section_2': {'val_s2': 'val'},
{'val_2': 'val'}}
}
是否可以在 section_2
下面的行 上定义 val_2
,但在配置对象的 'main' 部分下访问它?
我想以这样的配置对象结束:
{
'title': 'my_title',
{'section_1': {'val_s1': 'val'}},
{'section_2': {'val_s2': 'val'}},
'val_2': 'val'
}
当然,配置字典的顺序并不重要;我感兴趣的是能够使用嵌套部分,但是从 .ini
中退出一个部分到其父部分。
我还没有测试过,但怀疑从第一行开始嵌套 everything 然后切片配置对象会起作用。即,写 local.ini
使其创建:
{
'main_level':
{
'title': 'my_title',
{'section_1': {'val_s1': 'val'}},
{'section_2': {'val_s2': 'val'}},
'val_2': 'val'
}
}
然后我可以在第一次实例化配置对象时使用 config = config['main_level']
,但我想知道我是否只是缺少一些简单、正确的方法,这不是 hack。
根据 the documentation,这是不可能的:
In the outer section, single values can only appear before any sub-section.
我正在使用 ConfigObj 5.0.6 来保存许多用户定义的值,其中一些是嵌套的。我使用 local.ini
来取代典型值。没有前端,因此用户可以根据需要编辑配置。为了使这更容易和更直观,有一些值属于配置对象的 'root' 级别,但在 local.ini
文件的嵌套部分下面更容易理解。
我正在使用 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
正如预期的那样,此布局将 val_2
置于 section_2
下:
{
'title': 'my_title',
{'section_1': {'val_s1': 'val'}},
{'section_2': {'val_s2': 'val'},
{'val_2': 'val'}}
}
是否可以在 section_2
下面的行 上定义 val_2
,但在配置对象的 'main' 部分下访问它?
我想以这样的配置对象结束:
{
'title': 'my_title',
{'section_1': {'val_s1': 'val'}},
{'section_2': {'val_s2': 'val'}},
'val_2': 'val'
}
当然,配置字典的顺序并不重要;我感兴趣的是能够使用嵌套部分,但是从 .ini
中退出一个部分到其父部分。
我还没有测试过,但怀疑从第一行开始嵌套 everything 然后切片配置对象会起作用。即,写 local.ini
使其创建:
{
'main_level':
{
'title': 'my_title',
{'section_1': {'val_s1': 'val'}},
{'section_2': {'val_s2': 'val'}},
'val_2': 'val'
}
}
然后我可以在第一次实例化配置对象时使用 config = config['main_level']
,但我想知道我是否只是缺少一些简单、正确的方法,这不是 hack。
根据 the documentation,这是不可能的:
In the outer section, single values can only appear before any sub-section.