我正在从sqlite db中读取行,循环遍历它们,然后使用每行中的变量作为生成绘图的函数的参数, 像下面的伪代码
conn=sqlite3.connect(db)
c=conn.cursor()
myrows=c.execute("select * from values WHERE var=1")
for burst in myrows:
met=burst[1]
make_plot(met)
c.close()
经过一段时间后,会出现以下错误之一:
1)请求了86392个项目但只读取了0个分段错误
2)无法分配3072000个字节 中止
3)分段错误
make_plot()必须读取一个大文件(~8 mB)并对数据执行一些操作,并且myrows中有大约500个元素。从错误我认为我的内存不足(?)但我没有找到任何可以帮助我追踪/诊断这个问题的东西。关于如何做到这一点的任何想法?
答案 0 :(得分:1)
myrows=c.execute("select values.bust from values WHERE var=1")
另外,我想知道你真的想为每一行创建情节...你不想在一个情节中绘制所有数据吗?
答案 1 :(得分:0)
尝试查看是否将for
语句更改为:
for burst in c.execute("select * from values WHERE var=1"):
# your code here
不会一次检索一行,而不是一次检索。