1

文字列から一般的に辞書を作成する方法があるといいと思いましたXML

import xml.etree.ElementTree as ET

response = '<some><generic><xml></xml></generic></some>'
targetTree = ET.fromstring(response)

# Do something cool here

for key in my_cool_dict:
    print '{0} = {1}'.format(key, my_cool_dict[key])

私はあなたの要素を反復する気の利いた方法を見つけました:

for elem in targetTree.findall('some'):
    for child in elem.getchildren():
        print i.text

XMLこのようなことには、タグを知っている必要があります。何を受け取っているのかわからない場合はどうなりますか?がタグの名前で、がタグ間の値であるmy_cool_dict場所を作成するにはどうすればよいですか?keyvalue

4

1 に答える 1

2

フラットな場合(つまり、辞書に他の辞書が含まれない場合)、これは機能するはずです。

my_cool_dict = {}
for element in some_parent_element:
    my_cool_dict[element.tag] = element.text

たとえば、if some_parent_elementはこの要素を表します。

<question>
    <title>How do I make a `dict` from XML in Python?</title>
    <tags>python xml</tags>
    <body>Lorem ipsum dolor sit amet.</body>
</question>

次に、コードを実行します。

for key in my_cool_dict:
    print '{0} = {1}'.format(key, my_cool_dict[key])

あなたはこれを得るでしょう:

body = Lorem ipsum dolor sit amet.
tags = python xml
title = How do I make a `dict` from XML in Python?
于 2012-07-20T04:07:15.600 に答える