一般来说,用Python 连DB为了能够自动map上object的属性,都会采用 ORM 框架

但是,如果你不是面对对象编程怎么办?还是要map啊,如果是map成dataframe这样的也非常的恶心,于是我的神队友弄了下面这个代码...

我擦勒,怎么想的,Google都不会吗?

老外几句代码的例子都放在github了,搜一下都不舍得?

关键就是拿到cursor 里面的description,通过pandas的构造函数,指定对应的column的名字就可以了

import cx_Oracle
import pandas

connection = cx_Oracle.connect('username/pwd@host:port/dbname')

def read_query(connection, query):
    cursor = connection.cursor()
    try:
        cursor.execute( query )
        names = [ x[0] for x in cursor.description]
        rows = cursor.fetchall()
        return pandas.DataFrame( rows, columns=names)
    finally:
        if cursor is not None:
            cursor.close()

最后的效果图

最后祝大家Google愉快