python导入pandas数据到db2数据库_从mym到Pandas数据帧的db2sql查询

这里有一个使用jdbc、pip可安装的JayDeBeApi和适当的db-jar文件的选项

注意:这可以用于其他jdbc/jaydebeapi compliant databases,如Oracle、mssqlserver等import jaydebeapi

import pandas as pd

def read_jdbc(sql, jclassname, driver_args, jars=None, libs=None):

'''

Reads jdbc compliant data sources and returns a Pandas DataFrame

uses jaydebeapi.connect and doc strings :-)

https://pypi.python.org/pypi/JayDeBeApi/

:param sql: select statement

:param jclassname: Full qualified Java class name of the JDBC driver.

e.g. org.postgresql.Driver or com.ibm.db2.jcc.DB2Driver

:param driver_args: Argument or sequence of arguments to be passed to the

Java DriverManager.getConnection method. Usually the

database URL. See

http://docs.oracle.com/javase/6/docs/api/java/sql/DriverManager.html

for more details

:param jars: Jar filename or sequence of filenames for the JDBC driver

:param libs: Dll/so filenames or sequence of dlls/sos used as

shared library by the JDBC driver

:return: Pandas DataFrame

'''

try:

conn = jaydebeapi.connect(jclassname, driver_args, jars, libs)

except jaydebeapi.DatabaseError as de:

raise

try:

curs = conn.cursor()

curs.execute(sql)

columns = [desc[0] for desc in curs.description] #getting column headers

#convert the list of tuples from fetchall() to a df

return pd.DataFrame(curs.fetchall(), columns=columns)

except jaydebeapi.DatabaseError as de:

raise

finally:

curs.close()

conn.close()

一些例子

^{pr2}$

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值