Python 有效地从dict中的键中选择最佳字符串
我试图从文件中读取EXIF数据,特别是图像的标题。有时需要检查多个字段以查看是否设置了标题。现在,我用一堆if语句来做这件事,一次尝试一个,直到结果不是none,如果是,则应用默认标题Python 有效地从dict中的键中选择最佳字符串,python,Python,我试图从文件中读取EXIF数据,特别是图像的标题。有时需要检查多个字段以查看是否设置了标题。现在,我用一堆if语句来做这件事,一次尝试一个,直到结果不是none,如果是,则应用默认标题 #Set the title m.title = exif.get('Xmp.dc.subject') if m.title is None: m.title = exif.get('Xmp.dc.title') if m.title is None: m.title = origin
#Set the title
m.title = exif.get('Xmp.dc.subject')
if m.title is None:
m.title = exif.get('Xmp.dc.title')
if m.title is None:
m.title = original_filename_noextension
我的问题是,有没有更简单的方法?如果需要检查很多密钥,搜索可能会很长
m.title = exif.get('Xmp.dc.subject') or exif.get('Xmp.dc.title') or original_filename_noextension
应该有用。请注意,这将“合并”任何虚假值,而不仅仅是None
或者,您可以非常轻松地编写函数:
def coalesce(*args):
for a in args:
if a is not None:
return a
用法:
m.title = coalesce(exif.get('Xmp.dc.subject'), exif.get('Xmp.dc.title'), original_filename_noextension)