python dicttoxml多次使用相同的密钥

Lio*_*zin 2 python xml python-2.7

我正在尝试执行如下所示的 xml:

<xml....
<key1>aaa </key1>
<key1>bbb</key1>
<key1>ccc</key1>
</xml>
Run Code Online (Sandbox Code Playgroud)

使用 python dicttoxml lib

试过:

quest_dict = [{'key1': 'aaa'}, {'key1': 'bbb'}, {'key1': 'ccc'}]
request_xml = dicttoxml.dicttoxml(request_dict, attr_type=False, root=False)
Run Code Online (Sandbox Code Playgroud)

但得到了不好的 xml 不例外。感谢帮助!

Dav*_*her 5

您可以通过用虚拟类包装键来创建带有重复键的字典,然后在该字典上使用 dicttoxml。如果订单很重要,请使用collections.OrderedDict

from dicttoxml import dicttoxml
from collections import OrderedDict

class Node(object):
    def __init__(self, name):
        self._name = name

    def __str__(self):
        return self._name

quest_dict = OrderedDict([(Node('key1'), 'aaa'), (Node('key1'), 'bbb'), (Node('key1'), 'ccc')])
request_xml = dicttoxml(quest_dict, attr_type=False, root=False)
print(request_xml)
Run Code Online (Sandbox Code Playgroud)

这给出了您想要的输出:

b'<key1>aaa</key1><key1>bbb</key1><key1>ccc</key1>'
Run Code Online (Sandbox Code Playgroud)