Postgresql psycopg2对远程数据库的查询

Postgresql psycopg2对远程数据库的查询,postgresql,python-2.7,psycopg2,Postgresql,Python 2.7,Psycopg2,我需要从远程数据库获取一些数据。此处显示要连接的代码: import psycopg2 params = { 'dbname': 'some_db', 'username': 'user', 'password': 'password', 'host': '333.333.333.333', 'port': 3333 } conn = psycopg2.connect(**params) 然后我尝试执行查询: cur = conn.cursor() cur.execut

我需要从远程数据库获取一些数据。此处显示要连接的代码:

import psycopg2

params = {
  'dbname': 'some_db',
  'username': 'user',
  'password': 'password',
  'host': '333.333.333.333',
  'port': 3333
}

conn = psycopg2.connect(**params)
然后我尝试执行查询:

cur = conn.cursor()
cur.execute("SELECT * FROM sometable")
SELECT * FROM sometable;
然后我得到了一个例外:

psycopg2.ProgrammingError: relation sometable does not exist
现在,如果我通过psql使用完全相同的参数从同一台机器连接到数据库:

psql --dbname=some_db --username=user --password=password --host=333.333.333.333 --port=3333
并尝试执行查询:

cur = conn.cursor()
cur.execute("SELECT * FROM sometable")
SELECT * FROM sometable;
我得到的结果没有任何错误。这不仅发生在一个表中,而且发生在数据库中的所有表中

编辑

我对params没有什么错误。我用的不是

'username': 'user',
但是:


尝试使用不同的变量名进行连接,如:

params = {
  'database': 'some_db',
  'user': 'user',
  'password': 'password',
  'host': '333.333.333.333',
  'port': 3333
}
见:


您尝试过使用dsn字符串吗?正如您所断言的,如果您可以使用psql直接连接到数据库,并且您成功了,那么使用相同凭据的psycopg2连接的工作原理应该是相同的。