Vì bạn đã có một DSN hoạt động được định nghĩa trong odbc.ini, bạn chỉ có thể sử dụng nó:
con = pyodbc.connect("DSN=my-connector")
Ngoài ra, đối với bản ghi, khoảng trắng thừa đó trong chuỗi kết nối của bạn có thể đã gây nhầm lẫn vấn đề vì điều này hoạt động tốt đối với tôi, ít nhất là dưới Python 2.7
import pyodbc
conn_str = (
"DRIVER={PostgreSQL Unicode};"
"DATABASE=postgres;"
"UID=postgres;"
"PWD=whatever;"
"SERVER=localhost;"
"PORT=5432;"
)
conn = pyodbc.connect(conn_str)
crsr = conn.execute("SELECT 123 AS n")
row = crsr.fetchone()
print(row)
crsr.close()
conn.close()