【Python】XMLを辞書に変換する方法

この記事では、PythonでXMLを辞書に変換する方法を解説します。

xmltodictライブラリとElementTreeライブラリの使い方を紹介するので、初心者の方でも簡単にXMLデータを辞書形式に変換することができます。

目次から探す

XMLを辞書に変換する方法

XMLはデータを階層的に構造化するためのフォーマットですが、PythonではXMLを扱うための便利なライブラリがいくつかあります。

ここでは、xmltodictライブラリとElementTreeライブラリを使用して、XMLを辞書に変換する方法を解説します。

xmltodictライブラリを使用する

xmltodictライブラリは、XMLをパースして辞書に変換するためのライブラリです。

以下の手順で使用することができます。

  1. xmltodictライブラリをインストールします。
pip install xmltodict
  1. XMLファイルを読み込みます。
import xmltodict

with open('data.xml', 'r') as f:
    xml_data = f.read()

data.xml は変換したいXMLファイルのパスを指定してください。

  1. XMLを辞書に変換します。
dict_data = xmltodict.parse(xml_data)

これで、XMLが辞書に変換されました。

dict_data 変数には、XMLの要素と値が辞書の形式で格納されています。

ElementTreeライブラリを使用する

ElementTreeライブラリは、Python標準ライブラリに含まれているXML処理のためのモジュールです。

以下の手順で使用することができます。

  1. XMLファイルを読み込みます。
import xml.etree.ElementTree as ET

tree = ET.parse('data.xml')
root = tree.getroot()

data.xml は変換したいXMLファイルのパスを指定してください。

  1. XMLを辞書に変換します。
def element_to_dict(element):
    dict_data = {}
    if element.attrib:
        dict_data.update(element.attrib)
    for child in element:
        child_data = element_to_dict(child)
        if child.tag in dict_data:
            if type(dict_data[child.tag]) is list:
                dict_data[child.tag].append(child_data)
            else:
                dict_data[child.tag] = [dict_data[child.tag], child_data]
        else:
            dict_data[child.tag] = child_data
    return dict_data

dict_data = element_to_dict(root)

これで、XMLが辞書に変換されました。

dict_data 変数には、XMLの要素と値が辞書の形式で格納されています。

以上が、PythonでXMLを辞書に変換する方法です。

xmltodictライブラリとElementTreeライブラリを使用することで、簡単にXMLを辞書に変換することができます。

目次から探す