Python将numpy数组插入sqlite3数据库

我试图在sqlite3数据库中存储大约1000个浮点数的numpy数组,但我不断收到错误“ InterfaceError:错误绑定参数1-可能是不受支持的类型”。


我的印象是BLOB数据类型可以是任何东西,但绝对不能与numpy数组一起使用。这是我尝试过的:


import sqlite3 as sql

import numpy as np

con = 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中的另一种形式(例如可以拆分的列表或字符串)?性能不是重点。我只希望它能工作!


谢谢!


元芳怎么了
浏览 914回答 3
3回答

阿波罗的战车

这对我有用:import sqlite3 as sqlimport numpy as npimport jsoncon = 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 datadata = cur.fetchall()my_list = json.loads(data[0][1])
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python