【发布时间】:2016-10-20 05:54:52
【问题描述】:
我有这样的嵌套 python 字典。
d = {}
d[a] = b
d[c] = {1:2, 2:3}
我正在尝试将嵌套字典递归转换为 xml 格式,因为内部可以有更多嵌套字典,例如 d[e] = {1:{2:3}, 3:4}。我想要的 XML 格式是这样的
<root>
<a>b</a>
<c>
<1>2</1>
<2>3</3>
</c>
</root>
到目前为止,我有这个 python 代码来处理使用 lxml 库的嵌套 xml。但它并没有给我想要的输出。
def encode(node, Dict):
if len(Dict) == 0:
return node
for kee, val in Dict.items():
subNode = etree.SubElement(node, kee)
del msgDict[kee]
if not isinstance(val, dict):
subNode.text = str(val)
else:
return encode(subNode, val)
感谢任何帮助。谢谢你。
【问题讨论】:
-
你看过这个答案吗? stackoverflow.com/questions/1019895/…
-
是的,我做到了。但我试图编写本机方法而不是使用外部库。它应该相当简单,但我的递归思维有点差。
-
你的想法是对的。如果当前元素是另一个你想要递归的字典,如果它是一个元素然后写出它的值。你得到的输出是什么?
标签: python xml dictionary recursion lxml