2017-11-03 12 views
0

Hallo an alle unterstützen würde ich ein DataBase SQLite Export bekommen, aber wenn ich Export möchte ich die folgende Fehlermeldung wirdcsv.writer - Typeerror: ‚str‘ nicht die Puffer-Schnittstelle

def ExportFile(self): 
    self.cursor.execute("SELECT * FROM Book") 
    dbFile = QFileDialog.getSaveFileName(parent=None,caption="Export 
    DataFile a File",directory=".",filter="CSV File(*.csv)") 

    if dbFile[0]: 
     with open(dbFile[0], "wb") as csvFile: 
      csvWriter = csv.writer(csvFile,delimiter=',', 
      quotechar="\"",quoting=csv.QUOTE_MINIMAL) 

      rows = self.cursor.fetchall() 
      rowCount = len(rows) 

      for row in rows: 
       csvWriter.writerow(row) 

      QMessageBox.information(self,__appname__,"Succesfully Exported" 
      + str(rowCount) + " rows to a file\r\n" + 
      str(QDir.toNativeSeparators(dbFile[0]))) 

Dieser Fehler wird angezeigt:

+0

Der Fehler Wird nicht von PyQt verursacht, die Daten werden durch einen Cursor erhalten, der eindeutig kein PyQt-Objekt ist, und Sie möchten ihn auch mit csv.writer schreiben, das auch kein PyQt-Objekt ist – eyllanesc

Antwort

0
 self.cursor.execute("SELECT * FROM Book") 
     dbFile = QFileDialog.getSaveFileName(parent=None,caption="Export 
     DataFile a File",directory=".",filter="CSV File(*.csv)") 

    if dbFile[0]: 
     with open(dbFile[0] + ".csv", "wb") as csvFile: 
      csvWriter = csv.writer(csvFile,delimiter=',', 
      quotechar="\"",quoting=csv.QUOTE_MINIMAL) 

      rows = self.cursor.fetchall() 
      rowCount = len(rows) 

      for row in rows: 
       csvWriter.writerow(bytes(row,"UTF-8")) 

Fehler:

Traceback (most recent call last): 
File "D:/Souerce/PyQT/Project/Library Management/main.py", line 303, in 
ExportFile 

csvWriter.writerow(bytes(row,"UTF-8")) 
TypeError: encoding or errors without a string argument 
Verwandte Themen