我正在尝试从 python 中的 postgres 服务器获取数据,而在数据库中,列是井名,例如“id”、“name”、“email”等,但是当我在 python 中提取这些列时,我得到列名称为 0、1、2 等。
这是我的python代码:
import psycopg2
import psycopg2.extras
DB_HOST = "xx.xxx.xxx.xxx"
DB_NAME = "my_db"
DB_USER = "my_user"
DB_PASS = "********"
PORT = 5432
conn = psycopg2.connect(host=DB_HOST, port = PORT, database=DB_NAME, user=DB_USER, password=DB_PASS)
# Create a cursor object
cur = conn.cursor()
cur.execute("""SELECT id, name, email FROM users""")
users = cur.fetchall()
cur.close()
conn.close()
如果我选中 users
,我会得到如下列表:
[(13, 'Vaibhav Saxena', 'vaibhavsxn@gmail.com')]
现在,我将其转换为熊猫数据框:
pd.DataFrame(users)
我得到的数据帧如下:
0 1 2
13 Vaibhav Saxena vaibhavsxn@gmail.com
我希望第 0、1 和 2 列作为“id”、“name”和“email”,就像在我选择数据时以及将其转换为数据框之前在数据库中一样。有什么提示吗?
答案 0 :(得分:1)
您可以尝试以下方法吗?
columns = [d[0] for d in cur.description]
pd.DataFrame(users, columns=columns)