PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

PostgreSQL TypeError :tous les arguments ne sont pas convertis lors du formatage de la chaîne

Il doit y avoir une virgule après lines[0] pour en faire un tuple.

curr.execute("""
    SELECT fields.fieldkey
    FROM fields
    LEFT JOIN zone ON zone.fieldkey=fields.fieldkey
    WHERE zone.zonekey = %s;
""", (lines[0],))

Depuis le execute la méthode attend une séquence (ou un mappage) il itère sur la chaîne que vous avez fournie entourée de parenthèses. Il est donc nécessaire d'en faire explicitement un tuple. Le même résultat, avec un code plus clair, peut être obtenu en utilisant le tuple tuple fonction :

(tuple(lines[0]))