精品专区-精品自拍9-精品自拍三级乱伦-精品自拍视频-精品自拍视频曝光-精品自拍小视频

網站建設資訊

NEWS

網站建設資訊

pymysqlcursor.fetchall()獲取不到數據怎么辦-創新互聯

這篇文章主要講解了pymysql cursor.fetchall()獲取不到數據怎么辦,內容清晰明了,對此有興趣的小伙伴可以學習一下,相信大家閱讀完之后會有幫助。

員工經過長期磨合與沉淀,具備了協作精神,得以通過團隊的力量開發出優質的產品。創新互聯公司堅持“專注、創新、易用”的產品理念,因為“專注所以專業、創新互聯網站所以易用所以簡單”。公司專注于為企業提供網站設計制作、成都做網站、微信公眾號開發、電商網站開發,重慶小程序開發公司,軟件按需設計等一站式互聯網企業服務。

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

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

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

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

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

pymysql cursor.fetchall()獲取不到數據怎么辦

錯誤原因:

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

用watch 功能更是添亂。

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

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

原因:

cursor,在其內部有個rownumber的變量,作用大概就是“游標”的意思吧,如果你是用fetchone()方法,取出來的就是第一個數,然后將游標移到下一位,下次去取就是從游標的位置開始還不是從_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

另外有需要云服務器可以了解下創新互聯scvps.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業上云的綜合解決方案,具有“安全穩定、簡單易用、服務可用性高、性價比高”等特點與優勢,專為企業上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。


分享文章:pymysqlcursor.fetchall()獲取不到數據怎么辦-創新互聯
網頁網址:http://m.jcarcd.cn/article/djpdse.html
主站蜘蛛池模板: 亚洲无码一区二区三区 | 三级a三级三级 | 日本二三区在线观 | 国产丰满| 成人国产精品秘 | 日韩欧美乱国产日 | 国产熟女乱子伦露 | 三级国产精品 | 乱伦性色| 国产九九在线视频 | 日本女性车厢的概况 | 国产精品狼人 | 最新中文字幕在线观看 | 91国精品黄 | 国产精品校花 | 成人区在线播放 | 成人免费视频大全 | 成人a视频在线观看 | 欧洲成人动漫在线观 | 国产v亚| 国产精品三区短视频 | 精品国产自在在线 | 欧美亚洲日本日韩 | 制服丝袜中文字 | 日本韩国欧美午夜 | 成人午夜网站 | 成人一区在线看 | 日本高清视频一区 | 欧美性色黄 | 九九九成人 | 日本成年视频操场 | 福利资源视频 | 国产专区 | 强奷乱码中文字幕 | 日本亚洲综合在线 | 国产乱子伦在线观看 | 国产全部理论 | 国产成年人免费在 | 成人乱码一区 | 日本特级婬片免费 | 欧美日韩岛国 |