【发布时间】:2021-08-24 11:38:05
【问题描述】:
我正在尝试使用 dict2xml 将嵌套字典转换为 xml。
这段代码:
from dict2xml import dict2xml
data = {
'a': 1,
'b': [2, 3],
'c': {
'd': [
{'p': 9},
{'o': 10}
],
'e': 7
}
}
print dict2xml(data, wrap="all", indent=" ")
像这样生成正确的 xml:
<all>
<a>1</a>
<b>2</b>
<b>3</b>
<c>
<d>
<p>9</p>
</d>
<d>
<o>10</o>
</d>
<e>7</e>
</c>
</all>
但是,如果我更改 'd' --> 'z',并通过 data = collections.OrderedDict(data) 维护键的顺序,则 xml 中的顺序不正确,并且 'z' 在 'e 之后结束' 在 xml 中的 'c' 下,如下所示:
<all>
<a>1</a>
<b>2</b>
<b>3</b>
<c>
<e>7</e>
<z>
<p>9</p>
</z>
<z>
<o>10</o>
</z>
</c>
</all>
如何在不排序键顺序的情况下运行 dict2xml? 是否有另一种解决方案可以从我的 dict 制作 xml?
谢谢!
【问题讨论】:
-
如果您需要密钥排序,请将您的原始数据更改为
OrderedDict... -
很容易修复,非常感谢!
-
很高兴我能帮上忙。我将该评论作为您可以接受的答案:)
-
啊等等,不,它不维护字典中的顺序。例如,如果我将 'd' 更改为 'z',它会在 xml 中的 'e' 之后打印
标签: python xml dictionary nested