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对象。
  • 相关阅读:
    某公司面试的SQL题目
    列存储索引
    JList动态添加元素
    Java中堆、栈、常量池等概念解析
    JButton大小设置问题?
    JAVA中定时器的使用
    线性表和链表的区别
    JTable表头显示问题以及如何让某行选中
    JPanel如何设置背景图片
    关于Scanner调用nextInt()异常try后不能二次输入问题
  • 原文地址:https://www.cnblogs.com/herbert/p/3479349.html
Copyright © 2011-2022 走看看