如果您需要解析一些包含或不包含某些条目的 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 的好例子)
关于python - 如果在 python 中不是 None 则强制转换值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24077212/