Python で XML を JSON に変換する

Muhammad Waiz Khan 2022年4月12日
Python で XML を JSON に変換する

このチュートリアルでは、Python で XML を JSON に変換する方法を調べます。JSON 形式は、XML 形式よりも読み取りと書き込みが簡単です。そのコンパクトなスタイルと軽量性により、特に RESTfulAPI でシステムパフォーマンスも向上します。JSON は多くの点で XML よりも優れているため、多くの分野で XML の代わりに使用されます。

ここで、XML 形式で保存されたデータがあり、それを JSON 形式に変換するとします。次の方法を使用して、Python で XML データを JSON に変換できます。

Python で xmltodict モジュールを使用して XML を JSON に変換する

Python には、データを obj 引数として受け取り、それを JSON 形式のストリームとしてシリアル化し、形式化されたデータを出力として返す json.dumps(obj) メソッドがあります。

obj 引数は、辞書、文字列、リスト、タプルなどにすることができます。json.dumps() メソッドは、データ型に従って obj を変換します。JSON オブジェクトが必要な場合と同様に、json.dumps() メソッドが辞書を JSON オブジェクトに変換するため、入力を辞書として提供する必要があります。リストまたはタプルタイプは JSON 配列に変換され、文字列タイプは JSON 文字列に変換されます。

xmltodict.parse() メソッドを使用して、XML データを Python 辞書データ型に変換できます。xmltodict.parse() メソッドは、XML 形式のデータを文字列として受け取り、データを解析して、出力を辞書として返します。

xmltodict.parse() メソッドを使用してデータを辞書に変換した後、json.dumps() メソッドを使用してデータを JSON オブジェクトに変換できます。

以下のサンプルコードは、Python で json.dumps() および xmltodict.parse() メソッドを使用して XML データを JSON に変換する方法を示しています。

import xmltodict
import json

dictionary = xmltodict.parse(
    """<note>
  <date>2021-03-07</date>
  <time>15:23</time>
  <to>Sara</to>
  <from>Khan</from>
  <msg>Let's meet this weekend!</msg>
</note>"""
)
json_object = json.dumps(dictionary)
print(json_object)

出力:

{"note": {"date": "2021-03-07", "time": "15:23", "to": "Sara", "from": "Khan", "msg": "Let's meet this weekend!"}}

関連記事 - Python XML

関連記事 - Python JSON