如何从 psycopg2 连接对象获取信息?

How to get info from pyscopg2 connection object?

如何从 connection 对象中检索有关主机的信息?

import psycopg2
connection = psycopg2.connect("host='localhost'")

在这种情况下,我想知道连接到哪个端口。在另一种情况下,我可能只想解析主机名以进行日志记录。

我可以解析 connection.dsn,但必须有更清晰的方法,因为 psycopg2 已经完成了解析此信息的工作(或者已经完成了?)。

您可以使用方法get_dsn_parameters (docs) to get a dictionary containing all the dsn parameters, including the port. Also available as .info.dsn_parameters (docs)。

例如:

port = connection.get_dsn_parameters()["port"]

port = connection.info.dsn_parameters["port"]

你更喜欢哪个。