Python psycopg2的结果来自无效连接

Python psycopg2的结果来自无效连接,python,postgresql,psycopg2,Python,Postgresql,Psycopg2,我正在使用psycopg2连接到我的本地postgres实例,但没有意识到我从未设置过环境变量。我决定在sys表(information_schema.tables)上进行一次选择,以检查我是否已连接,并返回结果。我困惑了很长一段时间,试图找出为什么我没有得到想要的结果 引擎盖下到底发生了什么导致了这种情况,为什么psycopg2没有出错并说这是一个无效的连接 import psycopg2 conn = psycopg2.connect( host=None

我正在使用psycopg2连接到我的本地postgres实例,但没有意识到我从未设置过环境变量。我决定在sys表(information_schema.tables)上进行一次选择,以检查我是否已连接,并返回结果。我困惑了很长一段时间,试图找出为什么我没有得到想要的结果

引擎盖下到底发生了什么导致了这种情况,为什么psycopg2没有出错并说这是一个无效的连接

import psycopg2


conn = psycopg2.connect(
                host=None,
                port=None,
                dbname=None,
                user=None,
                password=None,
            )

cur = conn.cursor()

cur.execute("""SELECT table_name 
FROM information_schema.tables
limit 3 """)

print(cur.fetchall())
结果:

[('pg_statistic',),('pg_foreign_table',),('pg_authid',)]


当然,这种联系是有效的。当您将空参数传递给
psycopg2.connect()
时,程序会得到明显正确设置的参数。请注意,如果将DSN字符串传递给函数,则情况并非如此:

conn = psycopg2.connect("host=None") # this defines an invalid connection
Per:

PostgreSQL文档包含了完整的。还请注意,可以使用将相同的参数传递到客户端库