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對象。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM