我有一个对象列表Foo
,它们具有唯一标识键foo_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_rows
中没有相应的行?)的最pythonic方法是什么?)
答案 0 :(得分:0)
我对SQL知之甚少,所以用等效的
替换它们keys_not_in_db = set(list_of_foo_list_keys) - set(list_of_foo_rows_keys)