查找SQL查询未返回的列表元素的Python方法
我有一个对象列表查找SQL查询未返回的列表元素的Python方法,python,Python,我有一个对象列表Foo,其中有一个唯一的标识键,Foo\u-key。我在MySQL数据库中查询表FooData中的所有行,这些行在我的Foo对象列表中: 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\u行
Foo
,其中有一个唯一的标识键,Foo\u-key
。我在MySQL数据库中查询表FooData
中的所有行,这些行在我的Foo
对象列表中:
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\u行中没有对应的行)的最简单的方法是什么?我对SQL不太了解,所以用等效的方法替换它们
keys_not_in_db = set(list_of_foo_list_keys) - set(list_of_foo_rows_keys)