使用Pandas+sqlalchemy+PostgresSQL的创建表的问题

文章讲述了如何使用Pandas和SQLAlchemy连接PostgreSQL数据库时遇到的大小写敏感性问题,以及如何通过将表名全部转换为小写来解决Table不存在的错误。

Pandas+sqlalchemy+PostgresSQL能很方便的进行数据库访问。在使用Pandas导入csv数据直接转换为PostgresSQL的Table遇见了大小写问题。

from sqlalchemy import create_engine, text
import pandas as pd

try:
    engine = create_engine('postgresql://postgres:xxxxxx@localhost:5432/assignment')
except Exception as e:
    print("Unable to connect to the database.")
    print(e)


conn = engine.connect()

df = pd.read_csv("Test.csv")
df.to_sql("Test",con=engine,if_exists='replace',index=False)

在PostgreSQL数据库中会发现Test的数据库,但是你使用下面的SQL语句会告诉你Table不存在。

SELECT * FROM Test

你必须使用public."Test"才可以使用。

SELECT * from public."Test"

这是因为你的Table名中包含了大写字符,PostgresSQL需要区分大小写的table名导致的。

将df.to_sql中的table名用全小写就能解决这个问题。

df.to_sql("test",con=engine,if_exists='replace',index=False)
SELECT * FROM test
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值