我试图在sqlite3数据库中存储大约1000个浮点数的numpy数组,但我不断收到错误“ InterfaceError:错误绑定参数1-可能是不受支持的类型”。我的印象是BLOB数据类型可以是任何东西,但绝对不能与numpy数组一起使用。这是我尝试过的:import sqlite3 as sqlimport numpy as npcon = sql.connect('test.bd',isolation_level=None)cur = con.cursor()cur.execute("CREATE TABLE foobar (id INTEGER PRIMARY KEY, array BLOB)")cur.execute("INSERT INTO foobar VALUES (?,?)", (None,np.arange(0,500,0.5)))con.commit()我是否可以使用另一个模块将numpy数组放入表中?还是可以将numpy数组转换为sqlite将接受的Python中的另一种形式(例如可以拆分的列表或字符串)?性能不是重点。我只希望它能工作!谢谢!
3 回答

阿波罗的战车
TA贡献1862条经验 获得超6个赞
这对我有用:
import sqlite3 as sql
import numpy as np
import json
con = sql.connect('test.db',isolation_level=None)
cur = con.cursor()
cur.execute("DROP TABLE FOOBAR")
cur.execute("CREATE TABLE foobar (id INTEGER PRIMARY KEY, array BLOB)")
cur.execute("INSERT INTO foobar VALUES (?,?)", (None, json.dumps(np.arange(0,500,0.5).tolist())))
con.commit()
cur.execute("SELECT * FROM FOOBAR")
data = cur.fetchall()
print data
data = cur.fetchall()
my_list = json.loads(data[0][1])
添加回答
举报
0/150
提交
取消