游标执行后返回的结果都只是数据,但是不带有列名标识。这里需要处理2个问题:
将返回的数据映射到每一列上
当返回的结果很大的时候,需要使用迭代器来提升性能。
解决上面的2个问题,在python里面可以采用下面的2种方式来处理。
使用namedtuple 和 map object。
使用yield 和 zip。
下面是示例代码:
Result_From_DB# MySQL 数据库
import mysql
from mysql import connector
from collections import namedtuple
def generate_namedtuple(cur):
from collections import namedtuple
fieldnames = [d[0].lower() for d in cur.description]
Record = namedtuple('Record', fieldnames)
rows = cur.fetchall()
if not rows:return
else:
return map(Record._make, rows)
def generate_dicts(cur):
fieldnames = [d[0].lower() for d in cur.description]
while True:
rows = cur.fetchma