2016-12-17 87 views
0

以下是代碼,我得到的結果爲空數組,但光標具有行顯示行數> 1PyMySql光標獲取所有返回的空當數據庫在Python有行

``

def __init__(self,readLink): 
    if readLink==0: 
     self.linksToRead = 1000000000 
    else: 
     self.linksToRead = readLink 
    self.linkCount = 0 
    self.wordsList =[] 
    self.parsedLinks=[] 
    self.urlList =[] 
    self.connection = pymysql.connect(host='localhost', 
         user='root', 
         password='[email protected]', 
         db='scrapper', 
         charset='utf8', 
         cursorclass=pymysql.cursors.DictCursor, autocommit=True) 


    with self.connection.cursor() as cursor: 

     sql2 = "SELECT * FROM `linksparsed`" 
     try: 
      cursor.execute(sql2) 
      #self.connection.commit() 
     except Exception as ex: 
      print(ex) 

     result = cursor.fetchall() 
     cursor.rowcount #shows 3 
     totalLength = len(result) # shows 0 
     for row in result: 
      self.parsedLinks.append(row) 
+0

您是不是要找寫'在result'行。遊標本身不可迭代。另外,你指的是什麼數組?在Python中,數組是特定的數據結構,不應與列表或元組相混淆。光標在哪裏顯示rowcount? – Parfait

+0

我試過並用結果更新了問題,結果實際上是空的所以它不工作,當我做'cursor.rowcount'時,行計數是3 –

+0

你在哪裏初始化光標?再次,你在哪裏運行'rowcount'。我們希望在我們的最後重現您的問題。我們可能需要看更多的課程。你可能需要使用'self.'限定遊標。 – Parfait

回答

0

fetchall()後的排數是多少? 如果它是3,等於rowcount,意味着已經獲取了行。

這是使用fetchall,假設收益在源代碼 「的結果self._rows [self.rownumber:]」

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 
相關問題