Mit SQLAlchemy, eine Liste gegeben, möchte ich bestimmen, welche Werte in der Liste nicht in einer bestimmten Spalte in einer SQLite DB-Tabelle vorhanden sind. Eine Möglichkeit ist folgende:Mit SQLAlchemy bestimmen, welche Listenwerte nicht in einer DB-Spalte sind
def get_user_ids_not_in_DB(self, user_ids):
query__belongs = User_DB.user_id.in_(user_ids)
select__user_ids_in_DB = self.SQL_Helper.db.query(User_DB.user_id).filter(query__belongs)
user_ids_in_DB = zip(*select__user_ids_in_DB.all())[0]
return list(set(user_ids) - set(user_ids_in_DB))
Gibt es einen schnelleren/effizienteren Weg, um dasselbe zu erreichen?
Die Identität Operator kann nicht überlastet werden, so 'ualias.user_id ist None' ausgewertet' false' Python Seite und schauen Sie habe 'WHERE false' in SQL. Verwenden Sie 'ualias.user_id.is_ (None)' oder 'ualias.user_id == None', was SQLAlchemy automatisch in' IS' konvertiert. –
@ IljaEverilä Whoops! Guter Fang. Ich habe meine Antwort basierend auf Ihrem Kommentar aktualisiert – Ray