python同时使用下标和字段名读取mysql查询结果

在我们使用python连接mysql 的时候,有几种库可以选择,mysql-connector-python,MySQL-python,pymysql,但是无论使用哪种库,都有一个问题,就是fetchall出来的代码row只是一种数据类型,元祖或者字典,只能用下标或者字段名中的一种来访问,我使用过sqlite3,在使用sqlite3的过程中,如果设置了conn.row_factory = sqlite3.Row,就可以同时使用下标或者字段名来访问了。

所以我就想自己实现一下这个功能,我是基于mysql-connector-python-8.0.5,将里面的lib做了修改,修改了lib/mysql/connector/cursor.py和lib/mysql/connector/connection.py,目前只做了初步的修改,功能比较简单

先贴一段代码:

import mylib.mysql.connector as mysql
#上面这行是测试的时候放的,安装好了直接import mysql.connector as mysql即可
conn = mysql.connect(host='localhost', user='root',passwd='admin',db='test',charset='utf8')
c = conn.cursor(mysqlrow=True)
c.execute("SELECT name,age FROM student;")
for row in c.fetchall(): 
    print row[0] 
    print row["name"]

以上代码都能得到print 里面都能得到name的值

代码下载地址

https://github.com/loversmile/mysql-connector-python-8.0.5-loversmile

目前实现比较简单,后续后更新

你可能感兴趣的:(Python)