私はこれのような入れ子のPython辞書を持っています。 再帰的にネストされたPython辞書を反復する
d = {}
d[a] = b
d[c] = {1:2, 2:3}
は私のような
d[e] = {1:{2:3}, 3:4}
内部のより多くのネストされた辞書が存在することができるので、再帰的にXML形式にネストされた辞書を変換しようとしています。私の望むXML形式は次のようなものです
<root>
<a>b</a>
<c>
<1>2</1>
<2>3</3>
</c>
</root>
これまでに、lxmlライブラリを使ってネストされたxmlを処理するPythonコードがあります。しかし、それは私に望ましい出力を与えません。
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)
助けていただければ幸いです。ありがとうございました。
あなたはこの回答をお探しですか? http://stackoverflow.com/questions/1019895/serialize-python-dictionary-to-xml – Rob
そうでした。しかし、私は外部ライブラリを使用する代わりにネイティブメソッドを記述しようとしていました。それはかなり簡単なはずですが、私の再帰的思考はやや貧弱です。 – pseudo
あなたは正しい考えがあります。現在の要素が再帰を行いたい別の辞書であれば、それが要素であればその値を書き出します。あなたは何を得ていますか? – Rob