将无限数量的值插入sqlite

时间:2017-05-03 13:20:58

标签: python sqlite

我有一个列表,len(list)199但它可以在运行时以与我的表的列增加相同的速度增加。

我想在sqlite中的表中插入这些元素。

到目前为止

代码:

conn.execute('INSERT INTO Financial_data VALUES (?)',list)

我已经阅读了文档和其他s.o问题,但我不能在那里放置199个问号,即使我可以,也许在运行20秒后会有200列,那么呢?

我想要做的是用数据填充行的所有列

在上面的代码之前,我有这个,它插入了sql数据库中存在的每个头的列表元素,如果我的其他源没有其中一个头的值,则它附加None 所以我可以一次转储整行。

if header in lista_header_tabel:
    lista_valori.append(valoare)
else:
    lista_valori.append(None)

这种情况正在发生,因为程序的插入部分非常慢,我不知道为什么。我试图将它们包含在conn.execute("begin")内,它可以提高性能,但是......

难道sqlite能够处理200列的20-50K行的大小吗?在这一点上,使用shelve或json比使用sqlite有更好的性能。 我哪里错了?

当前工作解决方案但在2k行后缓慢:

conn.execute("begin")
    for celula in rand:
        if sheet_results.cell(row=1,column=celula.col_idx).value in lista_header_tabel and celula.value!=None:

                header_coloana=sheet_results.cell(row=1,column=celula.col_idx).value
                valoare_aferenta=str(celula.value).replace('"','^')
                nume_fara_ghilimele=str(rand[1].value).replace('"','^')
                query='UPDATE Financial_data SET "' + header_coloana + '" = "' + valoare_aferenta + '" WHERE `Company name`="' + nume_fara_ghilimele + '"'
                #print(query)
                conn.execute(query)

conn.commit()

0 个答案:

没有答案