Python: XMLファイルのデータを辞書(dict)型に格納する
XMLファイルを読み込んで辞書型に格納するPythonコードを以下に示します
XMLファイルの内容は次の通りです。
<root> <id1> <name>名前1</name> <age>20</age> </id1> <id2> <name>名前2</name> <age>30</age> </id2> </root>
import xml.etree.ElementTree as ET # XMLファイルを読み込む tree = ET.parse('your_file.xml') root = tree.getroot() # 結果を格納する辞書 result = {} # rootの直下の要素をループ for child in root: id_key = child.tag result[id_key] = {} # 各id要素の子要素をループ for subchild in child: result[id_key][subchild.tag] = subchild.text # 結果を表示 print(result)
このコードは以下のように動作します:
- xml.etree.ElementTreeモジュールをインポートします。
- ET.parse()を使ってXMLファイルを読み込み、ルート要素を取得します。
- 結果を格納するための空の辞書
result
を作成します。 - ルート要素の直下の子要素(この場合は
id1
とid2
)をループします。 - 各
id
要素に対して、その子要素(name
とage
)をループし、それぞれの値を辞書に格納します。 - 最後に結果の辞書を表示します。
このコードを実行すると、以下のような辞書が得られます:
{ 'id1': {'name': '名前1', 'age': '20'}, 'id2': {'name': '名前2', 'age': '30'} }
注意: XMLファイルのパスを正確に指定してください。上記のコードでは 'your_file.xml' となっていますが、実際のファイル名に置き換える必要があります。
また、このコードはXMLの構造が質問で示されたものと同じであることを前提としています。XMLの構造が異なる場合は、コードを適宜調整する必要があります。