在Python中读取配置文件(使用ConfigParser存储/读取嵌套数据)

Hom*_*lli 5 python configuration pyyaml

我正在编写一个列表处理脚本,需要读取列表中每个项目的配置数据.配置数据最好表示为嵌套树.

我通常会使用YAML来存储数据 - 但我认为使用ConfigParser会更加Pythonic方法 - 并使脚本对其他Python编码器更加"透明" - 因为有相当多的人不熟悉YAML格式.

我已经快速查看了configParser文档,但我无法确定它是否可以处理嵌套数据.

我的配置数据将具有以下结构:

<markers>
    <marker>
        <date></date>
        <value></value>
    </marker>
</markers>
<items>
    <item>
        <start></start>
        <end></end>
        <mcc>
           <chg>
                <date></date>
                <ival></ival>
                <fval></fval>
           </chg>
        </mcc>
    </item>
</items>
Run Code Online (Sandbox Code Playgroud)

我可以使用ConfigParser在配置文件中读取/(写入)这种嵌套数据吗?(我更感兴趣的是能够阅读而不是编写配置文件.如果需要,我不介意手动编写配置文件).

seb*_*seb 9

不,configparser不支持嵌套.你可以看看configObj.它已经成熟并且使用得非常广泛.

  • 链接已失效。尝试使用 https://configobj.readthedocs.io/en/latest/configobj.html (2认同)

Nil*_*esh 5

根据您的 xml 数据,您需要部分和小节。所以你可以使用ConfigParser但你必须给子部分一些意义,比如

[markers]
[markers.marker]
date=''
value=''

[items]
[items.item]
start=''
end=''
[items.item.mcc]
[items.item.mcc.chg]
date=''
ival=''
fval=''
Run Code Online (Sandbox Code Playgroud)

然后您必须覆盖该getsection函数以获取嵌套数据。