如果您需要解析一些包含或不包含某些条目的 XML,您通常会以这样的模式结束:
planet = system.findall('.//planet')
row['discoveryyear'] = int(planet.findtext("./discoveryyear")) if planet.findtext("./discoveryyear") else None
有更好的方法吗?我想避免第二次 planet.findtext 调用,但也不想先写另一行文本来存储变量
请您参考如下方法:
我建议使用辅助函数代替 try/except 解决方案:
def find_int(xml, text):
found = xml.findtext(text)
return int(found) if found else None
row['discoveryyear'] = find_int(planet, "./discoveryyear")
(注意 found 如果是 '' 也是假的,这也是返回 None 的好例子)
