Nur ein Anfänger mit der Python / Postgres-Combo, also vergib mir, wenn das trivial ist. Ich führe eine rohe SQL-Abfrage mit sqlalchemy durch:
%Vor% Im folgenden Beispiel habe ich self.ids
als Tupel mit String oder Ganzzahlen sowie als Array mit String oder ganzen Zahlen probiert. Wie auch immer, es hat nicht funktioniert.
Wenn ich diese Zeile verwende:
%Vor%Ich bekomme den Fehler:
%Vor%Irgendwelche Vorschläge?
Ich habe SqlAlchemy für gerade psycopg2 gelöscht, also weiß ich nicht, ob es zu 100% gilt. Was ich herausfand, war, dass psycopg2 die IN-Klausel korrekt kompiliert, wenn Sie ihr ein Tupel und nicht ein Array / eine Liste übergeben. Ich habe ein Tupel von ganzen Zahlen übergeben und es hat gut funktioniert.
Der Platzhalter %s
in execute
erwartet einen Skalar, kein Tupel. Sie müssen es entweder durch ','.join(('%s',) * len(mytuple))
ersetzen oder stattdessen die String-Substitution verwenden!
Wenn Ihre IDs in einer Liste sind, können Sie die Listenadaption verwenden:
%Vor%Entnommen aus Listen-Anpassung
Tags und Links python sql postgresql