我正在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(替换为您实际需要的名称).

Python-3.x相关问答推荐

需要使用regex匹配字符串的帮助,直到最后一次出现开闭括号,开闭括号中的值是可选的

检测点坐标 - opencv findContours()

使用 Fetch 提交表单到 Django 视图

添加任意数量的 pandas 数据框

匹配语句NaN

通过 Pandas 通过用户定义函数重命名数据框列

Django - ValueError:无法将字符串转换为浮点数:''

Python3:是否可以将变量用作函数调用的一部分

包含值超出范围的 ID 的新 DataFrame 列?

为什么 f-strings 比 str() 更快地解析值?

多个返回函数的列表理解?

将字符串表示与使用整数值的枚举相关联?

在python中基于列表理解的条件下跳过元素

如何将 SimpleGUI 与 Python 2.7 和 3.0 shell 集成

如何使用python将放置在多个嵌套文件夹中的文档移动和重命名为一个新的单个文件夹?

类方法和实例方法同名

每次启动 Google Colab 时都必须安装所需的软件包吗?

具有不均匀间隙的 Python 范围

Python pathlib 获取父级相对路径

带有数千个逗号刻度标签的 MatPlotLib 美元符号