La barra invertida en la contraseña en este caso se interpreta como un carácter de escape. Python trataría la barra invertida en \w
como literal \
incluso si no se especifica como una cadena sin formato porque \w
no es una secuencia de escape válida, pero la biblioteca subyacente también analiza secuencias de escape
, por lo tanto, la barra invertida debe escaparse (duplicarse).
Para evitar esto, especifique los parámetros de conexión como argumentos de palabras clave en cambio:
psycopg2.connect(host=HOST,
database=DATABASE_NAME,
port=DATABASE_PORT,
user=DATABASE_USER,
password=DATABASE_PASSWORD)
Esto evita problemas con los caracteres especiales en las contraseñas. Además, un carácter de comillas simples en la contraseña rompería la cadena de conexión.