Dans ce cas, la barre oblique inverse du mot de passe est interprétée comme un caractère d'échappement. Python traiterait la barre oblique inverse dans \w
comme littéral \
même s'il n'est pas spécifié en tant que chaîne brute car \w
n'est pas une séquence d'échappement valide, mais la bibliothèque sous-jacente également parse les séquences d'échappement
, donc la barre oblique inverse doit être échappée (doublée).
Pour éviter cela, spécifiez les paramètres de connexion comme arguments de mot clé à la place :
psycopg2.connect(host=HOST,
database=DATABASE_NAME,
port=DATABASE_PORT,
user=DATABASE_USER,
password=DATABASE_PASSWORD)
Cela évite les problèmes avec les caractères spéciaux dans les mots de passe. De plus, un guillemet simple dans le mot de passe casserait la chaîne de connexion.