Python dicttoxml モジュールの概要

dicttoxml モジュールの概要

公式ドキュメント

インストール
pip install dicttoxml
基本的な使い方
# 方法一 导入库
import dicttoxml
xml = dicttoxml.dicttoxml(some_dict)
# 方法二 导入dicttoxml()函数
form dicttoxml import dicttoxml
xml = dicttoxml(some_dict)
dicttoxml 属性の概要
ルート = False
完全な XML ドキュメントの代わりに XML フラグメントを作成します。デフォルトは True
>>> xml_snippet = dicttoxml.dicttoxml(obj, root=False)
>>> print(xml_snippet)
<mylist><item type="str">foo</item><item type="str">bar</item><item type="str">baz</item></mylist><mydict><foo type="str">bar</foo><baz type="int">1</baz></mydict><ok type="bool">true</ok>
Custom_root="ルート要素名" (バージョン 1.5 以降)
カスタムルート、デフォルトルート
>>> xml = dicttoxml.dicttoxml(obj, custom_root='some_custom_root')
>>> print(xml)
<?xml version="1.0" encoding="UTF-8" ?><some_custom_root><mydict><foo>bar</foo><baz>1</baz></mydict><mylist><item>foo</item><item>bar</item><item>baz</item></mylist><ok>true</ok></some_custom_root>
xml_declaration = False (バージョン 1.7.15 以降)
XML宣言を省略します(<?xml version="1.0"coding="UTF-8" ?>)

省略されていますが、暗黙的なデフォルトのエンコード情報は依然として UTF-8 です。

>>> xml = dicttoxml.dicttoxml(xml_declaration=False)
>>> print(xml)
<root><ok type="bool">true</ok><mylist type="list"><item type="str">foo</item><item type="str">bar</item><item type="str">baz</item></mylist><mydict type="dict"><foo type="str">bar</foo><baz type="int">1</baz></mydict></root>
attr_type = False (バージョン 1.4 以降)
type 属性を無効にする、デフォルトは True
>>> xml = dicttoxml.dicttoxml(obj, attr_type=False)
>>> print(xml)
<?xml version="1.0" encoding="UTF-8" ?><root><mydict><foo>bar</foo><baz>1</baz></mydict><mylist><item>foo</item><item>bar</item><item>baz</item></mylist><ok>true</ok></root>
エンコーディング="エンコーディング形式" (バージョン 1.7.6 以降)
XML エンコーディング属性を変更します。変更しない場合、デフォルトは UTF-8 です。
>>> xml = dicttoxml.dicttoxml(obj, encoding="ISO-8859-1")
include_encoding=False (バージョン 1.7.6 以降)
エンコード属性を完全に抑制し、エンコード属性を含まず、暗黙的なデフォルトのエンコード属性を持ちません。デフォルトは True です。
>>> xml = dicttoxml.dicttoxml(obj, include_encoding=False)
ids=True (バージョン 1.1)

各要素に一意の id 属性を指定します。デフォルトは False

>>> xml_with_ids = dicttoxml.dicttoxml(obj, ids=True)
>>> print(parseString(xml_with_ids).toprettyxml())
<?xml version="1.0" ?>
<root>
        <mylist id="root_160980" type="list">
                <item id="mylist_609405_1" type="str">foo</item>
                <item id="mylist_609405_2" type="str">bar</item>
                <item id="mylist_609405_3" type="str">baz</item>
        </mylist>
        <mydict id="root_140407" type="dict">
                <foo id="mydict_260437" type="str">bar</foo>
                <baz id="mydict_111194" type="int">1</baz>
        </mydict>
        <ok id="root_612831" type="bool">true</ok>
</root>
バージョン 1.3 以降、dicttoxml はdict基本クラスから派生した辞書のようなオブジェクトを受け入れ、それらを辞書として扱います。例えば:
>>> import collections
>>> dictlike = collections.OrderedDict({'foo': 1, 'bar': 2, 'baz': 3})
>>> xml = dicttoxml.dicttoxml(dictlike)
>>> print(xml)
<?xml version="1.0" encoding="UTF-8" ?><root><baz type="int">3</baz><foo type="int">1</foo><bar type="int">2</bar></root>
また、バージョン 1.3 以降では、dicttoxml は反復可能なオブジェクトを受け入れ、それらをリストとして扱います。例えば:
>>> myiter = range(1,11)
>>> xml = dicttoxml.dicttoxml(myiter)
>>> print(xml)
<?xml version="1.0" encoding="UTF-8" ?><root><item type="int">1</item><item type="int">2</item><item type="int">3</item><item type="int">4</item><item type="int">5</item><item type="int">6</item><item type="int">7</item><item type="int">8</item><item type="int">9</item><item type="int">10</item></root>
item_func=my_item_func (バージョン 1.7 以降)

リスト内の item 要素の名前を item にしたくない場合は、名前をカスタマイズできます。デフォルトは item です。

>>> import dicttoxml
>>> obj = {
    
    u'mylist': [u'foo', u'bar', u'baz'], u'mydict': {
    
    u'foo': u'bar', u'baz': 1}, u'ok': True}
>>> my_item_func = lambda x: 'list_item'
>>> xml = dicttoxml.dicttoxml(obj, item_func=my_item_func)
>>> print(xml)
<?xml version="1.0" encoding="UTF-8" ?><root><mydict type="dict"><foo type="str">bar</foo><baz type="int">1</baz></mydict><mylist type="list"><list_item type="str">foo</list_item><list_item type="str">bar</list_item><list_item type="str">baz</list_item></mylist><ok type="bool">True</ok></root>
cdata=True (バージョン 1.7.1 以降)
cdataパラメータはCDATAで値をラップするように設定されますTrue
>>> import dicttoxml
>>> obj = {
    
    u'mylist': [u'foo', u'bar', u'baz'], u'mydict': {
    
    u'foo': u'bar', u'baz': 1}, u'ok': True}
>>> xml = dicttoxml.dicttoxml(obj, cdata=True)
>>> print(xml)
<?xml version="1.0" encoding="UTF-8" ?><root><mydict type="dict"><foo type="str"><![CDATA[bar]]></foo><baz type="int"><![CDATA[1]]></baz></mydict><mylist type="list"><item type="str"><![CDATA[foo]]></item><item type="str"><![CDATA[bar]]></item><item type="str"><![CDATA[baz]]></item></mylist><ok type="bool"><![CDATA[True]]></ok></root>
return_bytes=False (バージョン 1.7.14 以降)
True: bytes オブジェクトを返します (デフォルト)、False: str オブジェクトを返します。
>>> xml = dicttoxml.dicttoxml(obj)
>>> type(xml).__name__
'bytes'
>>> xml = dicttoxml.dicttoxml(obj, return_bytes=False)
>>> type(xml).__name__
'str'
拡大する:
フォーマットされた印刷を xml.dom.minidom モジュールと組み合わせてフォーマットされた印刷を実現します。
>>> from xml.dom.minidom import parseString
>>> dom = parseString(xml)
>>> print(dom.toprettyxml())
<?xml version="1.0" ?>
<root>
    <mylist type="list">
        <item type="str">foo</item>
        <item type="str">bar</item>
        <item type="str">baz</item>
    </mylist>
    <mydict type="dict">
        <foo type="str">bar</foo>
        <baz type="int">1</baz>
    </mydict>
    <ok type="bool">true</ok>
</root>
デバッグ
set_debug メソッドを使用してデバッグ情報を有効にする
デフォルトでは、デバッグ情報は次の場所に記録されます。dicttoxml.log
>>> import dicttoxml
>>> dicttoxml.set_debug(debug=True)
Debug mode is on. Events are logged at: dicttoxml.log
>>> xml = dicttoxml.dicttoxml(some_dict)
デバッグ情報の記録パスを変更する
>>> dicttoxml.set_debug(debug=True, filename='/path/to/some_other_filename.log')
Debug mode is on. Events are logged at: some_other_filename.log
デバッグモードをオフにするには、False引数を指定して呼び出します。set_debug
>>> dicttoxml.set_debug(debug=False)

おすすめ

転載: blog.csdn.net/qq_39962271/article/details/133310163