Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonの辞書(dict)からXMLを生成する方法【dicttoxmlの使い方】

Pythonで辞書からXMLを生成するには?

Pythonの辞書(dict)データからXMLを生成したい場合、dicttoxmlというパッケージを利用するのが最も手軽な方法です。まず、pipコマンドでパッケージをインストールしましょう。

$ pip install dicttoxml

インストールが完了したら、dicttoxml.dicttoxml() メソッドに辞書を渡すだけで、簡単にXML形式の文字列へ変換できます。

基本的な使用例

ネストされた構造を持つ辞書をXMLに変換してみます。

a = {
    'foo': 45,
    'bar': {
        'baz': "Hello"
    }
}
xml = dicttoxml.dicttoxml(a)
print(xml)

実行結果

上記のコードを実行すると、次のようなバイト文字列としてXMLが出力されます。各要素には値の型(int、str、dictなど)が自動的に属性として付与される点が特徴です。

b'<?xml version="1.0" encoding="UTF-8" ?><root><foo type="int">45</foo><bar type="dict"><baz type="str">Hello</baz></bar></root>'

XMLを見やすく整形表示する方法

そのままの出力では1行に圧縮されていて読みにくい場合があります。標準ライブラリの xml.dom.minidom.parseString() を組み合わせ、toprettyxml() メソッドを使えば、インデント付きの整形されたXMLを出力できます。

from xml.dom.minidom import parseString

a = {
    'foo': 45,
    'bar': {
        'baz': "Hello"
    }
}
xml = dicttoxml.dicttoxml(a)
dom = parseString(xml)
print(dom.toprettyxml())

整形後の出力

実行すると、以下のように階層構造がインデントで表現され、非常に読みやすいXMLが出力されます。

<?xml version = "1.0" ?>
<root>
    <foo type = "int">45</foo>
    <bar type = "dict">
        <baz type="str">Hello</baz>
    </bar>
</root>

まとめ

dicttoxmlを使えば、Pythonの辞書オブジェクトを数行のコードでXMLに変換でき、minidomと組み合わせることで整形済みの見やすい出力も簡単に得られます。設定ファイルの生成やAPIレスポンスの作成など、XMLが必要な場面でぜひ活用してください。

  1. Pythonで文字列を辞書(dict)に変換する方法|ast.literal_evalとjson.loadsの使い分け

    Pythonでは、文字列形式で表現された辞書データを実際のdictオブジェクトに変換したい場面がよくあります。主な方法としては、標準ライブラリの ast.literal_eval() を使う方法と、json モジュールを使う方法の2つがあります。それぞれの特徴と使い方を詳しく見ていきましょう。 方法1:ast.literal_eval() を使う ast.literal_eval() は、文字列をPythonの式として安全に評価する関数です。任意のコードを実行できてしまう eval() とは異なり、リテラル構造以外は評価しないため、セキュリティ面でも安心して利用できます。 評価できるのは、文

  2. Python関数で辞書を返す方法とは?基本の書き方とサンプルコード

    Pythonでは、関数から辞書(dict)を返す方法がいくつかあります。ここでは、最も基本的なパターンを中心に、具体的なサンプルコードとともに分かりやすく解説します。 基本の方法:dict()で辞書を作成してreturnする まずは、関数内でdict()コンストラクタを使って空の辞書を生成し、キーと値を追加したうえでreturn文で返す方法です。 # この関数は辞書を返します def foo(): d = dict() d[str] = Tutorialspoint d[x] = 50 return d print(foo()) 実行結果 {x: 50,