この記事では、PythonでXMLを辞書に変換する方法を解説します。
xmltodictライブラリとElementTreeライブラリの使い方を紹介するので、初心者の方でも簡単にXMLデータを辞書形式に変換することができます。
目次から探す
XMLを辞書に変換する方法
XMLはデータを階層的に構造化するためのフォーマットですが、PythonではXMLを扱うための便利なライブラリがいくつかあります。
ここでは、xmltodictライブラリとElementTreeライブラリを使用して、XMLを辞書に変換する方法を解説します。
xmltodictライブラリを使用する
xmltodictライブラリは、XMLをパースして辞書に変換するためのライブラリです。
以下の手順で使用することができます。
- xmltodictライブラリをインストールします。
pip install xmltodict
- XMLファイルを読み込みます。
import xmltodict
with open('data.xml', 'r') as f:
xml_data = f.read()
- XMLを辞書に変換します。
dict_data = xmltodict.parse(xml_data)
これで、XMLが辞書に変換されました。
dict_data
変数には、XMLの要素と値が辞書の形式で格納されています。
ElementTreeライブラリを使用する
ElementTreeライブラリは、Python標準ライブラリに含まれているXML処理のためのモジュールです。
以下の手順で使用することができます。
- XMLファイルを読み込みます。
import xml.etree.ElementTree as ET
tree = ET.parse('data.xml')
root = tree.getroot()
- 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を辞書に変換することができます。