I\'m guessing this is a pretty basic question, but I can\'t figure out why:
import psycopg2
psycopg2.connect(\"postgresql://postgres:postgres@localhost/postgres\
I would use the urlparse
module to parse the url and then use the result in the connection method. This way it's possible to overcome the psycop2 problem.
import urlparse # for python 3+ use: from urllib.parse import urlparse
result = urlparse.urlparse("postgresql://postgres:postgres@localhost/postgres")
# also in python 3+ use: urlparse("YourUrl") not urlparse.urlparse("YourUrl")
username = result.username
password = result.password
database = result.path[1:]
hostname = result.hostname
port = result.port
connection = psycopg2.connect(
database = database,
user = username,
password = password,
host = hostname,
port = port
)
The connection string passed to psycopg2.connect
is not parsed by psycopg2
: it is passed verbatim to libpq
. Support for connection URIs was added in PostgreSQL 9.2.