我有一个看起来像这样的表:
Column1 | Column2 | Column3
sky | blah | Null
giraffe | blah | Null
apple | blah | value
和2个清单:
List1 = [sky, gold, giraffe]
List2 = [blue, yellow, tall]
我希望将Column1中的某些值与List1中的值进行匹配,并更新使用List2中的值找到的Column3行。 List1和List2项具有相同的索引以相互匹配,因此sky的匹配值为蓝色,等等。因此,如果字段为Null,则我尝试在Colum3的“ sky”行中插入“ blue”。
最整洁的方法是什么?
最佳答案
只需从每个列表中获取条目,然后尝试对每个这样的对进行更新:
for name, value in zip(List1, List2):
cursor.execute('''UPDATE MyTable
SET Column3 = ?
WHERE Column1 = ?
AND Column3 IS NULL''',
(value, name))
这可以进一步简化:
cursor.executemany('''UPDATE MyTable
SET Column3 = ?
WHERE Column1 = ?
AND Column3 IS NULL''',
zip(List2, List1))
关于python - 更新列表中的匹配行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42445947/