Python:防止dict的键被覆盖

2024-09-28 22:02:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试将xml文档转换为Python数据结构。在

xml示例:

    <SOFTWARES>
        <PUBLISHER>Microsoft Corporation</PUBLISHER>
        <NAME>Microsoft Office Visio 2010</NAME>
        <VERSION>14.0.6029.1000</VERSION>
        <FOLDER>C:/Program Files/Microsoft Office/</FOLDER>
        <LANGUAGE>Language Neutral</LANGUAGE>
        <INSTALLDATE>2012/03/29</INSTALLDATE>
    </SOFTWARES>
    <SOFTWARES>
        <PUBLISHER>Microsoft</PUBLISHER>
        <NAME>Update for Microsoft Office 2010 (KB2553310) 64-Bit Edition</NAME>
        <INSTALLDATE>0000//0/0/00</INSTALLDATE>
    </SOFTWARES>

在lxml.de.公司有一个很好的例子:http://lxml.de/FAQ.html#how-can-i-map-an-xml-tree-into-a-dict-of-dicts

^{pr2}$

这就产生了一个伟大的格言,它只有一个缺点。它将覆盖现有的键。所以当整个过程完成后,我得到:

'SOFTWARES': {
    'PUBLISHER': 'Microsoft',
    'NAME': 'Update for Microsoft Office 2010 (KB2553310) 64-Bit Edition',
    'INSTALLDATE': '0000//0/0/00',
},

这是最后一个软件块,不管之前有多少。lxml的函数工作得很好,因为它是递归的,但是我想写一些可以处理重复键的东西。最好是把软件dicts放到一个列表中,到时候我就可以迭代列表了。在


Tags: nameforversionbitupdatexmlfolderlanguage