Проблема со вставкой BLOB-данных в таблицы SQL - PullRequest
0 голосов
/ 07 мая 2019

Я пытаюсь создать фрагмент кода, который вставляет созданный мною объект для очень специфического хранения данных в таблицу SQL в виде типа BLOB-объекта, и он продолжает давать мне sqlite3.InterfaceError: Ошибка привязкипараметр 1 - возможно, неподдерживаемый тип. 'ошибка.Кто-нибудь из вас сталкивался с чем-то подобным раньше?У вас есть идеи, как с этим бороться?

        conn = sqlite3.connect('my_database.db')
        c = conn.cursor()
        params = (self.question_id, i) #i is the object in question
        c.execute('''
                INSERT INTO '''+self.current_test_name+''' VALUES (?, ?)
                ''',params)
        conn.commit()
        conn.close()

1 Ответ

0 голосов
/ 07 мая 2019

Для начала, это было бы более подходящим оператором execute, так как он чище:

c.execute("INSERT INTO "+self.current_test_name+" VALUES (?, ?)", (self.question_id, i))

Вам также не хватает таблицы, в которую вы вставляете (или столбцы, если self.current_test_name - таблицаname.) Кроме того, находится ли столбец в настройке базы данных для обработки типа данных для предоставленного ввода для self.question_id и i?(Не ожидая TEXT, когда вы указали INT?)

Пример рабочего скрипта для вставки в таблицу с двумя столбцами с именами test и test2:

import sqlite3

conn = sqlite3.connect('my_database.db')
c = conn.cursor()

c.execute("CREATE TABLE IF NOT EXISTS test(test INT, test2 INT)")
conn.commit()

for i in range(10):
    params = (i, i)  # i is the object in question
    c.execute("INSERT INTO test (test, test2) VALUES (?, ?)", params)
    conn.commit()
conn.close()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...