Python xmltodict包的用法(附带实例)
在网络运维自动化领域中,经常将 XML 数据转化为 Python 数据,以提高可读性。在 Python 程序中,可以使用 xmltodict 包,它可将 XML 数据和 Python 数据进行转换。
本文使用的 xmltodict 版本是 0.13,安装命令如下:
例如,使用 xmltodict 解析 XML 数据:
使用 xmltodict 将 Python 数据转换为 XML 数据,示例代码如下:
本文使用的 xmltodict 版本是 0.13,安装命令如下:
pip install xmltodict==0.13
XML数据转换为Python数据
xmltodict 的 parse() 函数可以将 XML 数据转换为 Python 数据,并将 XML 数据赋值给第一个参数 xml_input。例如,使用 xmltodict 解析 XML 数据:
import xmltodict
import json
xml_text = """<?xml version="1.0" encoding="UTF-8"?>
<device>
<name>netdevops01</name>
<ip>192.168.137.1</ip>
<vendor>华为</vendor>
<online>true</online>
<rack>0101</rack>
<start_u>20</start_u>
<end_u>21</end_u>
<interface_usage>0.67</interface_usage>
<interfaces>
<interface>eth1/1</interface>
<interface>eth1/2</interface>
<interface>eth1/3</interface>
</interfaces>
<uptime>null</uptime>
</device>
"""
data = xmltodict.parse(xml_input=xml_text)
print(data)
运行结果如下:
{'device': {'name': 'netdevops01', 'ip': '192.168.137.1', 'vendor': '华为', 'online':
'true', 'rack': '0101', 'start_u': '20', 'end_u': '21', 'interface_usage': '0.67',
'interfaces': {'interface': ['eth1/1', 'eth1/2', 'eth1/3']}, 'uptime': 'null'}}
Python数据转换为XML数据
unparse() 函数可将 Python 数据转换为 XML 数据,其使用场景并不多,读者了解即可。使用时,将 unparse() 函数的第一个参数 input_dict 赋值为 Python 字典数据。使用 xmltodict 将 Python 数据转换为 XML 数据,示例代码如下:
import xmltodict
python_data = {'device':{'name': 'netdevops01', 'ip': '192.168.137.1',
'vendor': '华为', 'online': True, 'rack': '0101',
'start_u': 20, 'end_u': 21, 'interface_usage': 0.67,
'interfaces': ['eth1/1', 'eth1/2', 'eth1/3'],
'uptime': None}}
# input_dict是要转换的Python数据
# output默认值为None,如果将其赋值为一个文件对象,就会将数据写入其中
xml_data = xmltodict.unparse(input_dict=python_data,output=None)
print(xml_data)
上述代码的运行结果如下:
<?xml version="1.0" encoding="utf-8"?> <device><name>netdevops01</name><ip>192.168.137.1</ip><vendor>华为</vendor><online>true </online><rack>0101</rack><start_u>20</start_u><end_u>21</end_u><interface_usage>0.67 </interface_usage><interfaces>eth1/1</interfaces><interfaces>eth1/2</interfaces><interfaces> eth1/3</interfaces><uptime></uptime></device>
ICP备案:
公安联网备案: