Inserting QlineEdit.text() into Sqlite3 table give an error sqlite3.InterfaceError: Error binding parameter 0 - probably unsupported type

Inserting QlineEdit.text() into Sqlite3 table give an error sqlite3.InterfaceError: Error binding parameter 0 - probably unsupported type

我将 python 2.7 与 pyqt4.10 和 sqlite3 Db 一起使用,试图从 QlineEdit 获取用户输入以插入到 sqlite3 table 中已创建

Table结构

CREATE TABLE `categories` (
    `id`    INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT UNIQUE,
    `category_name` TEXT NOT NULL UNIQUE
);

我正在尝试在添加输入后用新数据刷新 Qlistwidget 中的列表 这是我的完整代码:

    def proc():
    input_user = self.lineEdit.text()
    conn = sqlite3.connect('storage/container.db')
    conn.row_factory = lambda c, row: row[0]
    c = conn.cursor()
    c.execute("INSERT INTO categories (category_name) VALUES (?)", (input_user, ))
    conn.commit()
    conn = sqlite3.connect('storage/container.db')
    conn.row_factory = lambda c, row: row[0]
    c = conn.cursor()
    c.execute("SELECT category_name FROM categories")
    category_all = c.fetchall()
    for items in category_all:
        self.listWidget.addItem(items)
    conn.close()

如您所见,我使用 input_user = self.lineEdit.text()QlineEdit

获取用户输入

错误是:

Traceback (most recent call last):
  File "C:\python\townoftechwarehouse\add_category.py", line 63, in proc
    c.execute("INSERT INTO categories (category_name) VALUES (?)", (input_user, ))
sqlite3.InterfaceError: Error binding parameter 0 - probably unsupported type.

发现问题是我使用了 qslite3 不可读的阿拉伯字符,所以我必须使用 unicode,这里是编辑:

已更改:

input_user = self.lineEdit.text()

收件人:

   input_user1 = self.lineEdit.text()
   input_user = unicode(input_user1)