python 连接数据库

mysql,oracle

SQLAlchemy, pymysql, cx_Oracle, 

直接用 cx_Oracle创建的连接引擎,使用 pd.read_sql时,会产生 warning,如下
"UserWarning: pandas only support SQLAlchemy connectable(engine/connection) ordatabase string URI or sqlite3 DBAPI2 connectionother DBAPI2 objects are not tested, please consider using SQLAlchemy";
此 warning 可以忽略, 执行的是 SQLiteDatabase.read_query();
使用 SQLAlchemy create_engine 创建连接引擎,连接Oracle 数据库时,执行的是 SQLDatabase.read_query(),
sql中输入的列名会变成小写;在 sql.py文件1560,1561行
1560  result = self.execute(*args)
1561  columns = result.keys()
columns 变成 列名小写列表
此时,要还原列明, 需要用 df = df.rename(columns=lambda x: x.upper())

示例:

# 'oracle+cx_oracle://' + user + ':' + pw + '@' + host + ':' + port + '/?service_name=' + db
create_engine("oracle+cx_oracle://user:passwd@host:port/db")
create_engine("mssql+pymssql://user:passwd@host:port/db")

https://docs.sqlalchemy.org/en/14/core/connections.html#sqlalchemy.engine.CursorResult

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值