Python構造体(例えば、ネストされたリスト、辞書など)からXML文字列を構築することは可能ですか、それとも意味のない質問ですか?Python構造体からXMLを構築する
標準ツールはありますか?
おかげ
Python構造体(例えば、ネストされたリスト、辞書など)からXML文字列を構築することは可能ですか、それとも意味のない質問ですか?Python構造体からXMLを構築する
標準ツールはありますか?
おかげ
カスタムフォーマットが必要な場合は、xml.etree.ElementTree
を使用して、このようなフォーマットをプログラムで生成できます。たとえば:
from xml.etree import ElementTree
def dict2xml(d, parent=None):
if parent is None:
parent = ElementTree.Element('xml')
for key, value in d.items():
if isinstance(value, str):
element = ElementTree.SubElement(parent, key)
element.text = value
elif isinstance(value, dict):
element = ElementTree.SubElement(parent, key)
dict2xml(value, element)
elif isinstance(value, list):
for text in value:
element = ElementTree.SubElement(parent, key)
element.text = str(text)
else:
raise TypeError('Unexpected value type: {0}'
.format(type(value)))
return parent
d = {'a': 'a contents',
'b': {'c': 'c contents',
'd': 'd contents',
},
'e': range(3),
}
print ElementTree.tostring(dict2xml(d))
は、次のような出力を生成します辞書の
<xml><a>a contents</a><b><c>c contents</c><d>d contents</d></b><e>0</e><e>1</e><e>2</e></xml>
標準ライブラリにはオブジェクトからXMLへのシリアライズはありませんが、pyxserがあります。
これらのネストされたリストは、値のタグが含まれていますか? – Nilesh
Pythonオブジェクトを保存したいだけなら、pickleを使用します。任意のPythonオブジェクトに対して完全に一般的なものは、Python固有のものになりますので、pickleを使用することもできます。他の言語との相互運用が必要な場合は、他のエンドでもサポートできるデータ形式(「XML」ではなく、正確なスキーマ)を把握しておかなければなりません。 Pythonでもサポートされています。 – delnan
私はMS Project用のデータを保存するためにXMLが必要です。私は生の文字列構築よりも優れたものを探していました。 – Don