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

标签 python

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

相关文章:

python - 无需 pickle 即可并行化

python - 如何仅迭代连续模式

python - 具有特定参数的多个字符串选择

python - 查找列表中连续重复数字的最大长度

python - Kivy:如何从 kvlang 中的任何屏幕访问嵌套的屏幕管理器

Python opencv 在图像上找到五边形轮廓

python - '类型错误: __init__() got multiple values for argument' with Python 3 using super() function

python - 我无法将库添加到 python_path

Python/Pygame 按钮按下声音

python - Soundcloud API python 与链接分区相关的问题