我正在尝试进行数据库插入,其中包含一个大约有20行的表。插入内容如下所示:
if not title.name:
title.name = data['title']
if not title.synopsis:
title.synopsis = data['synopsis']
...
基本上,如果每个数据库列都不存在,我会更新这些行。
什么是更清洁,更有效的方法呢?
答案 0 :(得分:3)
for column in ('name', 'synopsis', 'something', 'other'):
if not getattr(title, column):
setattr(title, column, data[column])
答案 1 :(得分:1)
您可以使用or
:
title.name = title.name or data['title']
title.synopsis = title.synopsis or data['synopsis']
或者您可以动态地执行此操作:
for attr in data:
if not getattr(title, attr):
setattr(title, attr, data[attr])
答案 2 :(得分:1)
使用getattr
和setattr
函数:
for attribute in ['title', 'synopsis']:
if not getattr(title, attribute):
setattr(title, attribute, data[atribute])
您可以阅读有关他们的更多信息here。