Python:遇到问题连接到Postgresql DB
我一直在使用下面的代码行最长的时间,没有任何困难,但今天它似乎产生了以下错误,我不明白为什么。奇怪的是,我有一个使用相同的代码,他们似乎都工作的其他脚本...Python:遇到问题连接到Postgresql DB
import pandas as pd
import psycopg2
link_conn_string = "host='<host>' dbname='<db>' user='<user>' password='<pass>'"
conn = psycopg2.connect(link_conn_string)
df = pd.read_sql("SELECT * FROM link._link_bank_report_lms_loan_application", link_conn_string)
错误消息:
"Could not parse rfc1738 URL from string '%s'" % name)
sqlalchemy.exc.ArgumentError: Could not parse rfc1738 URL from string 'host='<host>' dbname='<db>' user='<user>' password='<pass>''
变化link_conn_string
要像here:
postgresql://[user[:password]@][netloc][:port][/dbname][?param1=value1&...]
如:
>>> import psycopg2
>>> cs = 'postgresql://[email protected]:5432/t'
>>> c = psycopg2.connect(cs)
>>> import pandas as pd
>>> df = pd.read_sql("SELECT now()",c)
>>> print df;
now
0 2017-02-27 21:58:27.520372+00:00
您的连接字符串错误。
您应该删除,你分配一个字符串“link_conn_string”变量和替换像这样的下一行线(记得所在机器的名称,以取代本地主机,Postgres的和秘密 PostgreSQL是运行时,用户和密码到使该连接所需的):
conn = psycopg2.connect(dbname="localhost", user="postgres", password="secret")
此外,您可以检查数据库正在与“psql的”合作从终端输入(再次记住更改用户和数据库):
psql -U postgresql database
我怀疑这是[文档](http://initd.org/psycopg/docs/module.html)中的拼写错误,因为缺少关键字参数的“=”。他们也确实说,类似于OP的字符串是一个有效的选择。 – jonrsharpe
没有发现。确实在文档中是错误的。 –
不确定你的意思?你能澄清一下吗? –
这是一个像“blahblahblah.com” –
这样的URL地址这是因为我改变了回溯错误,因为我想保护凭据的隐私 –