Я пытаюсь сохранить большой двоичный объект, созданный из целочисленного массива (то есть упакованного массива целых чисел), в БД SQLite. Сценарий, показанный ниже, дает следующую трассировку. Насколько я вижу из документации по Python 2.7 sqlite3, должна быть возможность вставить буферный объект в таблицу, где он должен быть сохранен как BLOB. Однако я не могу сделать эту работу. (FWIW, isinstance (b, buffer) печатает True, если вставлен в скрипт, поэтому я действительно создаю объект буфера.)
Есть предложения?
Спасибо,
-Р.
Traceback (most recent call last):
File "example.py", line 13, in <module>
conn.execute( 'insert into foo values (?)', (b,) ) # <=== line 14
ValueError: could not convert BLOB to buffer
import sqlite3
import sys
import array
ar = array.array( 'I' )
ar.extend( [1,0,3,11,43] )
b = buffer( ar )
conn = sqlite3.connect( ':memory:' )
conn.execute( 'create table foo( bar BLOB )' )
conn.commit()
conn.execute( 'insert into foo values (?)', (b,) ) # <=== line 14
conn.commit()