找不到SQL查询返回的列表元素的Pythonic方法

时间:2013-10-28 22:16:02

标签: python

我有一个对象列表Foo,它们具有唯一标识键foo_key。我在MySQL数据库中查询表FooDataFoo个对象列表中所有行的所有行:

sql = "SELECT * FROM FooData where foo_key in ({})".format(",".join(str(obj.foo_key) for obj in foo_list))
foo_rows = sql_exec(sql).fetchall()

找出哪些Foo对象不在数据库中(即在返回的foo_rows中没有相应的行?)的最pythonic方法是什么?)

1 个答案:

答案 0 :(得分:0)

我对SQL知之甚少,所以用等效的

替换它们
keys_not_in_db = set(list_of_foo_list_keys) - set(list_of_foo_rows_keys)