将元组插入SQlite数据库

2024-06-26 13:08:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试将元组列表中的元组插入到SQlite数据库中。我甚至没有得到一个错误代码,它只是没有插入任何东西。 for tpl in tuplelist: cur.execute('''INSERT OR REPLACE INTO GUV (Jahr, Ertrag, Betriebskosten, Bruttobetriebsgewinn, Forschung_und_Entwicklung, Vertriebs_und_Verwaltungskosten, Personalkosten, Abschreibung_und_Abgrenzungen, Sonstige_Betriebskosten, Geschäftsaufwand, Betriebseinnahmen_vor_Zinsen_und_Steuern, Neutrale_Erträge, Gewinn_vor_Einkommenssteuer, Steueraufwand, Nettogewinn_für_weitere_Geschäftstätigkeit, Nettogewinn, Nettogewinn_verfügbar_für_Aktionäre, Unverwässert, Verwässert) VALUES ( ?, ?, ?, ?, ?, ?, ?, ? ,? ,? ,? ,? ,? ,? ,? , ?, ?, ?, ? )''', tpl)

编辑:我想添加这个。我不是要插入字符串,而是一个包含整数的元组。我要将其插入的表如下所示: CREATE TABLE GUV( Jahr INTEGER, Ertrag INTEGER, Betriebskosten INTEGER, Bruttobetriebsgewinn INTEGER, Forschung_und_Entwicklung INTEGER, Vertriebs_und_Verwaltungskosten INTEGER, Personalkosten INTEGER, Abschreibung_und_Abgrenzungen INTEGER, Sonstige_Betriebskosten INTEGER, Geschäftsaufwand INTEGER, Betriebseinnahmen_vor_Zinsen_und_Steuern INTEGER, Neutrale_Erträge INTEGER, Gewinn_vor_Einkommenssteuer INTEGER, Steueraufwand INTEGER, Nettogewinn_für_weitere_Geschäftstätigkeit INTEGER, Nettogewinn INTEGER, Nettogewinn_verfügbar_für_Aktionäre INTEGER, Unverwässert INTEGER, Verwässert INTEGER )

编辑:伙计们,问题解决了,我只是忘了承诺


Tags: integer元组tplvorundjahrbetriebskostennettogewinn
2条回答

嗨,飞碟,欢迎来到StackOverflow

你能提供一个你正在插入的元组的例子吗?我猜它们的格式不对

SQL喜欢看到如下格式的值:

INSERT INTO TABLE (col1, col2) VALUES ('val1', 'val2')

是否正确附加值

尝试将元组转换为那种格式。以下代码可能会有所帮助:

def iter_to_val(iter_in):
    new_list = []
    for item in iter_in:
        if isinstance(item, str):
            new_item = item.replace("'", "_").replace('"', "")
        else:
            new_item = str(item)
        new_list.append(new_item)
    str_out = ', '.join("'" + item + "'" for item in new_list)
    return str_out

请注意,此代码适用于只包含可转换数据类型的iterables,即,如果您尝试传递复杂对象列表,它将中断

相关问题 更多 >