我正在try 创建一个名称空间为json:Array的元素,应该如下所示:
<foo json:Array="true"/>
但是下面的代码抛出了Invalid namespace prefix 'json:Array'个错误.
from lxml.etree import Element, tostring
tostring(Element("foo", nsmap={"json:Array": "true"}))
我正在try 创建一个名称空间为json:Array的元素,应该如下所示:
<foo json:Array="true"/>
但是下面的代码抛出了Invalid namespace prefix 'json:Array'个错误.
from lxml.etree import Element, tostring
tostring(Element("foo", nsmap={"json:Array": "true"}))
这是因为名称空间前缀中不能有:
,而您正在try 将整个前缀设置为json:Array
.在该名称中,只有json
是前缀.
一种 Select 是使用QName()...
from lxml import etree
elem = etree.Element("foo", attrib={etree.QName("idk", "Array"): "true"}, nsmap={"json": "idk"})
print(etree.tostring(elem).decode())
这将打印以下内容:
<foo xmlns:json="idk" json:Array="true"/>
注意,这是名称空间格式良好的名称空间,因为json
前缀绑定到URI idk
(替换为您实际需要的名称).