Seite 1 von 1

DB Abfrage mit psycopg: TypeError: not all arguments conv...

Verfasst: Dienstag 5. Dezember 2006, 12:16
von newbie_needs_help
Hi,

mein Problem sieht wie folgt aus:

Ich will aus meiner Datenbank/Tabelle bestimmte Informationen lesen. Nach dem ich die Verbindung zur Datenbank hergestellt habe lese ich das SELECT statement in die Variable 'sql' ein:

Code: Alles auswählen

sql = "SELECT * FROM tabel WHERE entry = 'test'"
cursor.execute(sql)
Dieser Aufforderung kommt mein Script prima nach. Die Spalte 'test' in der Tabelle 'table' ist vom Typ 'text'.
Nun würde ich gerne die Einträge aus der Tabelle ziehen, die in meinem Array TEST aufgelistet sind:

Code: Alles auswählen

sql = "SELECT * FROM table WHERE entry = VALUES (%s)"
TEST=['A1BG', 'A2M']
for temp in genes:
            cursor.execute(sql,temp)
Leider endet das Script mit der Fehlermeldung:

Code: Alles auswählen

cursor.execute(sql, gene)
TypeError: not all arguments converted during string formatting
Kann mir jemande einen Tipp geben, was ich falsch mache?

Danke!

Verfasst: Dienstag 5. Dezember 2006, 14:47
von newbie_needs_help
habe den Fehler gefunden:

es lag an dem SELECT statement:

Code: Alles auswählen

sql = "SELECT * FROM table WHERE entry = '%s'"
for temp in TEST:
            cursor.execute(sql % temp)
fragt mich nicht wie ich auf VALUES kam :) ...hat mich ewig gekostet den Fehler zu finden. Vielleicht habe ich es einfach in der Literatur bei einem INSERT statement gelesen und abgekapselt.

Verfasst: Dienstag 5. Dezember 2006, 19:52
von BlackJack
Aber jetzt hast Du den '%'-Operator benutzt. Überlass das Einsetzen der Werte in die SQL-Anweisung besser dem Datenbankmodul wie im ersten Beispiel.