亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

解決pymysql cursor.fetchall() 獲取不到數(shù)據(jù)的問題

 更新時間:2020年05月15日 14:30:15   作者:匡威~萬斯  
這篇文章主要介紹了解決pymysql cursor.fetchall() 獲取不到數(shù)據(jù)的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

1.之前的寫法(不報錯):

data = cursor.fetchall()
data_name = data[0]['task_type']

2.簡潔的寫法(報錯):

data = cursor.fetchall()[0]['task_type']

用 2 的寫法報錯之后,一度懷疑是數(shù)據(jù)庫出了問題。不服氣用pycharm 的watch功能進行調試,更是錯上加錯。

錯誤原因:

cursor.fetchall() 相當于從數(shù)據(jù)庫取數(shù)據(jù),但是取完就沒有了,再下一行繼續(xù) cursor.fetchall(),取到的就只是空列表。他和變量不一樣,不能重復查詢,推薦第一種寫法,將數(shù)據(jù)取出來之后,放到一個變量里,再進行處理。

用watch 功能更是添亂。

補充知識:VScode pymysql模塊fetchall方法取不到值bug

這個問題是個很神奇的東西,簡單來說就是用fetchall()取cusor中的_rows的值,明明_rows里面存在值,但依然取出來為空,看了一會pymysql里cursor里的源碼,大概地了解到這個bug的表面原因:

原因:

cursor,在其內部有個rownumber的變量,作用大概就是“游標”的意思吧,如果你是用fetchone()方法,取出來的就是第一個數(shù),然后將游標移到下一位,下次去取就是從游標的位置開始還不是從_rows里的起始位置開始,fetchmany()同理,另外,cursor中還提供了直接移動游標的方法,也就是scroll方法,接下來,我們具體分析下fetchall的代碼:

  def fetchall(self):
  """Fetch all the rows"""
  self._check_executed()
  if self._rows is None:
   return ()
  if self.rownumber:
   result = self._rows[self.rownumber:]
  else:
   result = self._rows
  self.rownumber = len(self._rows)
  return result

代碼簡潔明了,如果_rows里面沒值,確實是在數(shù)據(jù)庫中沒查到,那就返回空,如果有游標,那從游標位置開始取,否則,直接返回_rows整個結果集,然后將游標移到最后,問題將出在這,我可以確定每次執(zhí)行完查詢以后,我都關閉了游標,未關閉db連接,并且,不會針對同一次查詢多次fetchall(),但是在執(zhí)行的時候,有時候即使是第一次fetchall()方法,游標依然在最后,然后我給cursor中所有的rownumber的賦值語句全部加了斷點,這些斷點都沒執(zhí)行的情況下,rownumber的值依然變了,這足以確定不是pymysql的代碼問題

解決方案:

這就更能確定是vscode的編譯模塊的問題了,新建一個py文件,將原代碼原封不動的復制過去,再執(zhí)行,竟然將這么好了?!就是這么神奇,什么代碼沒動,換個文件將好了,然后,這個bug是偶發(fā)性的,并不是每次fetchall()都會出現(xiàn)這種情況

以上這篇解決pymysql cursor.fetchall() 獲取不到數(shù)據(jù)的問題就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • 利用python將xml文件解析成html文件的實現(xiàn)方法

    利用python將xml文件解析成html文件的實現(xiàn)方法

    下面小編就為大家分享一篇利用python將xml文件解析成html文件的實現(xiàn)方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2017-12-12
  • 詳解Python中的數(shù)據(jù)清洗工具flashtext

    詳解Python中的數(shù)據(jù)清洗工具flashtext

    FlashText是GitHub上的一個開源Python庫,正如之前所提到的,它在提取關鍵字和替換關鍵字任務上有著極高的性能。本文將詳解一下flashtext的使用,需要的可以參考一下
    2022-06-06
  • Python?Celery定時任務詳細講解

    Python?Celery定時任務詳細講解

    這篇文章主要介紹了Python?Celery定時任務詳細講解,文章圍繞主題展開詳細的內容介紹,具有一定的參考價值,需要的朋友可以參考一下
    2022-08-08
  • python3利用Dlib19.7實現(xiàn)人臉68個特征點標定

    python3利用Dlib19.7實現(xiàn)人臉68個特征點標定

    這篇文章主要為大家詳細介紹了python3利用Dlib19.7實現(xiàn)人臉68個特征點標定,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-02-02
  • Python中集合創(chuàng)建與使用詳解

    Python中集合創(chuàng)建與使用詳解

    集合是無序的,無序也就沒有索引,不能進行索引相關的操作,下面這篇文章主要給大家介紹了關于Python中集合創(chuàng)建與使用,文中通過圖文介紹的非常詳細,需要的朋友可以參考下
    2022-08-08
  • Python打印scrapy蜘蛛抓取樹結構的方法

    Python打印scrapy蜘蛛抓取樹結構的方法

    這篇文章主要介紹了Python打印scrapy蜘蛛抓取樹結構的方法,實例分析了打印scrapy蜘蛛抓取樹結構的技巧,非常具有實用價值,需要的朋友可以參考下
    2015-04-04
  • CentOS中升級Python版本的方法詳解

    CentOS中升級Python版本的方法詳解

    本文給大家分享的是再centos系統(tǒng)中將Python版本從2.6升級到2.7的方法和升級過程中遇到的問題的處理,非常詳細,有需要的小伙伴可以參考下
    2017-07-07
  • Python3.5面向對象編程圖文與實例詳解

    Python3.5面向對象編程圖文與實例詳解

    這篇文章主要介紹了Python3.5面向對象編程,結合圖文與實例形式詳細分析了Python面向對象編程相關的概念、類定義、實例化、實例變量、類變量、析構函數(shù)等相關原理及使用技巧,需要的朋友可以參考下
    2019-04-04
  • Python實現(xiàn)邊緣提取的示例代碼

    Python實現(xiàn)邊緣提取的示例代碼

    這篇文章主要為大家詳細介紹了Python計算機視覺中如何實現(xiàn)邊緣提取,文中的示例代碼講解詳細,對我們學習有一定幫助,需要的可以參考一下
    2022-05-05
  • python基礎梳理(一)(推薦)

    python基礎梳理(一)(推薦)

    這篇文章主要介紹了python基礎梳理,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-04-04

最新評論