【问题标题】:csv.writer - TypeError: 'str' does not support the buffer interface [duplicate]csv.writer - TypeError:'str'不支持缓冲区接口[重复]
【发布时间】:2018-04-16 04:49:41
【问题描述】:

大家好,我会导出获取数据库 sqlite 但是当我想要导出时,会显示以下错误

    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])))

这个错误:

Traceback (most recent call last):
File "D:/Souerce/PyQT/Project/Library Management/main.py", line 303, in 
ExportFile
csvWriter.writerow(row)
TypeError: 'str' does not support the buffer interface

【问题讨论】:

  • 这个错误不是PyQt引起的,数据是通过一个明显不是PyQt对象的游标获取的,你也想用不是PyQt对象的csv.writer来写跨度>

标签: python python-3.x csv


【解决方案1】:
       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"))

错误:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-07-25
    • 2014-08-09
    • 2023-03-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多