То, что вы делаете, передает строку в функцию connect
.Эта строка имеет значение "dbname='db_toto' user='dad' host='xx.xx.xxx.x' port='5432' password=pw"
.Модуль psycopg2
не может знать, что такое pw
.Я подозреваю, что он будет преобразован в строку ('pw'
), но я не уверен.
В любом случае, правильный подход - передать аргументы ключевого слова в функцию connect
следующим образом:
connect = psycopg2.connect(dbname='db_toto' user='dad' host='xx.xx.xxx.x' port='5432' password=pw)
# Notice the lack of double-quotes in the arguments
Таким образом, вы будете передавать в функцию содержимое переменной pw
вместо имени pw
.
Можно передать содержимое pw
переменная в виде строки, например, так:
connect = psycopg2.connect("dbname='db_toto' user='dad' host='xx.xx.xxx.x' port='5432' password='{}'".format(pw))
Первая форма должна быть предпочтительной.