我正在处理来自API的一些XML,但是XML的结构并不像我想象的那样。我一直在努力忽略属性文本何时不存在。
我正在遍历我的树,获取每个文本并将其分配给变量,例如:
codigo = produtos.find('sku').text
pais = produtos.find('attributes/country').text
以此类推。
但是,在某些情况下,子属性不存在。我试图做内联临时表达式,只是给变量赋一个空白值,但是无论我做什么我都会得到一个'NoneType' object has no attribute 'text'
对于佩斯来说,有时这个孩子不存在,所以我尝试这样做:
pais = produtos.find('attributes/country').text if produtos.find('attributes/country').text else ''
如果我删除了.text
调用,那么当属性存在时它将不会检索文本。
与我整体上所做的事情相比,这似乎很简单,但是我无法解决这个问题。当属性不存在时,有没有办法忽略这些内联?
答案 0 :(得分:0)
经过大量搜索后,我发现最内联的方式是抑制AttributeError(Python 3):
from contextlib import suppress
with suppress(AttributeError): pais = produtos.find('attributes/country').text