Skip to main content
 首页 » 编程设计

python之如果在 python 中不是 None 则强制转换值

2025年05月04日12kuangbin

如果您需要解析一些包含或不包含某些条目的 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 的好例子)