Python:连接到Postgresql DB时遇到问题

时间:2017-02-27 21:25:03

标签: python sql postgresql sqlalchemy

我一直在使用以下几行代码,没有任何障碍,但今天它似乎产生了以下错误,我无法弄清楚为什么。奇怪的是,我有其他使用相同代码的脚本,它们似乎都有用......

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>''

2 个答案:

答案 0 :(得分:2)

link_conn_string更改为here

postgresql://[user[:password]@][netloc][:port][/dbname][?param1=value1&...]

例如:

>>> import psycopg2
>>> cs = 'postgresql://vao@localhost: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

答案 1 :(得分:-1)

您的连接字符串错误。

你应该删除你为“link_conn_string”变量分配字符串的行,并用下面这样的东西替换下一行(记得替换 localhost postgres 和< strong> secret ,其中包含运行postgresql的计算机的名称,进行该连接所需的用户密码

NSArray *tempArray = [userData arrayForKey:@"personDataArray"];

此外,您可以检查数据库是否正在使用“psql”命令,从终端输入(再次记住更改用户和数据库):

conn = psycopg2.connect(dbname="localhost", user="postgres", password="secret")