zoukankan      html  css  js  c++  java
  • Python 处理数据库返回结果

    游标执行后返回的结果都只是数据,但是不带有列名标识。这里需要处理2个问题:

    • 将返回的数据映射到每一列上
    • 当返回的结果很大的时候,需要使用迭代器来提升性能。

    解决上面的2个问题,在python里面可以采用下面的2种方式来处理。

    1. 使用namedtuple 和 map object。
    2. 使用yield 和 zip。

    下面是示例代码:

    Result_From_DB


     

    需要注意几点:

    • 使用map和namedtuple的时候,游标要使用fetchall()方法。一次行取出所有结果,然后调用map方法将所有的数据map到Record object上。
    • 返回的map object可以调用for方法进行遍历。map object类似一个Record object列表。
    • namedtuple生成的对象,访问的时候是用dot来访问数据的。
    • 使用yield和dict zip返回的是iterator对象,这在性能上应该更有优势。
    • cur.fetchmany()返回的rowcount是有cursor.arraysize决定的。默认的是1,可以自行决定每次返回的数量。cur.fetchmany(size)
    • 使用yield和dict zip返回的iterator对象,每一个是一个dict对象。
  • 相关阅读:
    spring源码阅读之ioc
    java基础面试题
    【0708】(OOP)编写并输出学员类和教员类
    【0706】综合作业:吃货联盟订餐系统
    【0703作业】输入一批整数,输出其中的最大值和最小值,输入0结束循环
    【0703作业】获取最低价手机价格
    【0703作业】一组成绩降序排列,插入数值
    【0703作业】猜数游戏
    【0702作业】根据数字输出行数(1-9)
    【0702作业】输出1-7对应星期
  • 原文地址:https://www.cnblogs.com/herbert/p/3479349.html
Copyright © 2011-2022 走看看