HOWTO · Python

Python を使用して XML を CSV に変換する

Python を使用して XML を CSV に変換する方法を学習します。

このページの内容

XML または Extensible Markup Language は、人間が読める形式と機械が読める形式の両方でデータをドキュメントに保存するマークアップ言語です。ファイル拡張子は .xml です。

CSV または Comma Separated Values は、カンマで区切られたドキュメントにデータを保存します。ファイル拡張子は .csv です。この記事では、Python を使用して XML データを CSV データに変換する方法を学習します。

Python を使用して XML を CSV に変換する

XML を CSV に変換するには、Python に組み込まれている xml モジュールを使用できます。

このモジュールには、XML ドキュメントをツリーとして表すために使用できるさらに別のモジュール ElementTree があります。これには、パラメータとして XML ドキュメントを受け入れるメソッド parse() があります。

XML ドキュメント全体を解析し、ツリー形式で保存します。ツリーには、ツリーのルート要素を返す getroot() メソッドがあります。

for ループを使用して、ツリーを反復処理し、タグ名(name、rollnumber および age)を使用してデータにアクセスできます。

変換を理解するには、いくつかのサンプル XML データが必要です。次の XML データを使用して、input.xml という名前のファイルに保存できます。

次のコードスニペットはこのデータを使用します。同じページに表示されるようにする必要があります。

<students>
    <student>
        <name>Rick Grimes</name>
        <rollnumber>1</rollnumber>
        <age>15</age>
    </student>
    <student>
        <name>Lori Grimes</name>
        <rollnumber>2</rollnumber>
        <age>16</age>
    </student>
    <student>
        <name>Carl Grimes</name>
        <rollnumber>3</rollnumber>
        <age>14</age>
    </student>
    <student>
        <name>Judith Grimes</name>
        <rollnumber>4</rollnumber>
        <age>13</age>
    </student>
</students>

変換の実行方法については、次の Python コードを参照してください。

from xml.etree import ElementTree

tree = ElementTree.parse("input.xml")
root = tree.getroot()

for student in root:
    name = student.find("name").text
    roll_number = student.find("rollnumber").text
    age = student.find("age").text
    print(f"{name},{roll_number},{age}")

出力:

Rick Grimes,1,15
Lori Grimes,2,16
Carl Grimes,3,14
Judith Grimes,4,13