我使用的是带有Psycopg2库的PostgreSQL数据库。我想获取SQL表并将其转换为pd.DataFrame。因此,我需要将SQL表转换为类似{col1:[val1,val2], col2:[val1,val2]}
的dict,但当我使用SELECT * FROM tablename
时,它不包括列名。我不想使用panda函数直接连接到SQL。如果你知道如何像我上面提到的那样将SQL表作为字典,我很高兴你能写出来。
感谢您提前提供的帮助。
执行查询后,可以从description
-属性中的光标中提取列名:
cursor.execute("SELECT * FROM tablename")
columns = [desc[0] for desc in cursor.description]
之后,您应该能够使用columns
-参数:将提取的数据解析为具有正确列名的DataFrame
data_df = pd.DataFrame(cursor.fetchall(), columns=columns)
最后使用to_dict
:将DataFrame转换为具有列表作为值的字典
data_dict = data_df.to_dict(orient="list")