Я хотел бы вставить двоичные данные в базу данных с помощью sqlite3
.
compressed = zlib.compress(pickle.dumps(foo))
database.insert(cursor, "bar", config=compressed)
Здесь database
из другого модуля из другого класса, который выполняет execute
.В этом классе команда выглядит следующим образом:
cursor.execute('''insert into {} {} values {}'''.format(table,columns,entries))
Однако я сталкиваюсь с двумя разными проблемами, обе с вставкой двоичных данных:
Во-первых, ошибка скажет
sqlite3.OperationalError: near '''long binary data here''' syntax error
Это тот случай, когда я не могу напрямую хранить длинные двоичные данные в таблицах в sqlite3
?
Во-вторых, я попытался использовать sqlite3.Binary()
, но это дает мне что-то вроде <memory at 0x7fd60e327108>
когда я пытаюсь распечатать двоичные данные в отдельном классе.Попытка сделать buffer()
также не помогла.
С учетом этих двух проблем, как мне хранить двоичные данные в таблице sqlite3
?Я использую **kwargs
в своей функции;на самом деле это не единственный аргумент, который я использую в своих функциях.
Кроме того, другие параметры, которые не включали двоичные данные (простые строки и значения с плавающей запятой), не вызывали ошибку.
Обновление: мне приходит в голову, что в маринованных данных есть какие-то специальные символы, но я не уверен, как их хранить.