Un curseur psycopg2 prend une chaîne avec des sous-chaînes échappées qui représentent les valeurs text/char/varchar. Par exemple, d'utiliser une procédure stockée qui insère dans une table:Interpolation d'une chaîne non échappée en Python
cur.execute('SELECT insert_profile("name", "favorite color example")')
Mon problème se produit lorsque je tente d'utiliser l'interpolation de chaîne pour insérer la variable de la chaîne qui est passée à l'exécution de la fonction.
J'ai essayé d'utiliser des guillemets simples sur les variables et des guillemets simples sur le littéral de chaîne, mais cela ne fait que l'opération habituelle. Par exemple:
name = "Harry"
color = "Blue"
cur.execute('SELECT insert_profile({0}, {1})'.format(name, color)
J'ai aussi essayé nicher les variables, mais il insère la chaîne imbriquée littérale dans la base de données:
name = "'Harry'"
color = "'Blue'"
Quelle est l'approche correcte? Désolé si la réponse est ailleurs sur SO ou sur internet. Je n'ai pas eu de succès en regardant autour de moi.