Der Backslash im Passwort wird in diesem Fall als Escape-Zeichen interpretiert. Python würde den Backslash in \w
behandeln als wörtlich \
auch wenn es nicht als Rohstring angegeben ist, weil \w
ist keine gültige Escape-Sequenz, aber die zugrunde liegende Bibliothek ist auch parst Escape-Sequenzen
, daher muss der Backslash maskiert (verdoppelt) werden.
Um dies zu vermeiden, geben Sie die Verbindungsparameter als Schlüsselwortargumente an stattdessen:
psycopg2.connect(host=HOST,
database=DATABASE_NAME,
port=DATABASE_PORT,
user=DATABASE_USER,
password=DATABASE_PASSWORD)
Dadurch werden Probleme mit Sonderzeichen in Passwörtern vermieden. Auch ein einzelnes Anführungszeichen im Passwort würde die Verbindungszeichenfolge beschädigen.