lxml.objectify将重复标签自动转为列表,单个标签为单个对象,访问前需用isinstance或getattr检查存在性与类型,推荐统一转为列表处理以避免AttributeError。

lxml.objectify 对重复标签的默认处理是把它们转成 Python 列表(list),而不是单个对象 —— 这是它和 etree 的关键区别之一,也是你“能直接用点号取值”的前提。
重复标签自动转为列表
比如 XML 中有多个同名子元素:
<root> <item>A</item> <item>B</item> <item>C</item> </root>
登录后复制
用 objectify 解析后:root = objectify.fromstring(xml)root.item 就是一个包含 3 个 StringElement 的 list,你可以用索引访问:root.item[0]、root.item[1] 等。
判断是否为重复标签(即是否是列表)
不能靠名字猜,得实际检查类型:
立即学习“Python免费学习笔记(深入)”;
版权声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。
还木有评论哦,快来抢沙发吧~