Python lxml库,使用变量作为属性名称的元素

时间:2017-11-01 18:10:38

标签: python xml lxml

我正在尝试根据excel电子表格中的信息动态创建.xml文件。

基本上我要做的是创建一个xml元素,我可以使用变量作为属性的名称和属性的值

from lxml import etree

attribute = "state"
attribute_value = "NJ"
root = etree.Element()
root.append(etree.Element("Entry1", attribute = attribute_value))

然而,它只是忽略了一个事实,即属性是一个值为“state”的变量,而是命名属性“attribute”。

我对Python,特别是lxml缺乏经验。我查看了文档并在这里搜索了一些答案,但找不到类似的东西。谢谢你的帮助。

1 个答案:

答案 0 :(得分:0)

如果要将动态参数传递给function,则应使用python参数解包:https://docs.python.org/2/tutorial/controlflow.html#unpacking-argument-lists

使用**将字典解压缩到函数参数:

function_name(**arguments_dict)

这是您需要的代码

from lxml import etree

attribute_name = "state"
attribute_value = "NJ"
attributes = {attribute_name: attribute_value}

root = etree.Element('root')
root.append(etree.Element("Entry1", **attributes))

print(etree.tostring(root))