1

我正在尝试使用大约二十行的表进行数据库插入。插入看起来像这样:

if not title.name:
    title.name = data['title']
if not title.synopsis:
    title.synopsis = data['synopsis']
...

基本上,如果每个 db 列不存在行,我将更新这些行。

什么是更清洁、更有效的方法呢?

4

3 回答 3

3
for column in ('name', 'synopsis', 'something', 'other'):
    if not getattr(title, column):
        setattr(title, column, data[column])
于 2013-02-17T23:03:49.147 回答
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])
于 2013-02-17T23:04:44.297 回答
1

用途getattrsetattr功能:

for attribute in ['title', 'synopsis']:
   if not getattr(title, attribute):
       setattr(title, attribute, data[atribute])

你可以在这里阅读更多关于它们的信息。

于 2013-02-17T23:04:57.887 回答