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对象。
  • 相关阅读:
    061.Python前端Django组件用户认证组件
    060.Python组件-中间件
    059.Python前端Django组件cooki和session
    058.Python前端Django与Ajax
    057.Python前端Django模型ORM多表查询
    数字签名与数字证书的原理
    加密算法的分类与区别
    Linux操作php.ini文件
    Linux添加普通权限账号并授予root权限
    Linux 切换 shell
  • 原文地址:https://www.cnblogs.com/herbert/p/3479349.html
Copyright © 2011-2022 走看看