如果值为'itertools.chain公司'对象'

2024-10-02 20:31:57 发布

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

我是sqlite3(python用户)的新手

已根据以下方法将数据存储在数据库中,但这次不起作用。插入已执行,没有错误报告,但数据库中没有存储任何内容。你知道吗

我在这个网站上搜索了很多这个话题,重点是“不承诺”。但我很确定我完成了“提交”并正确地关闭了文件。在插入操作之后,我可以在我的数据库中找到带有标题(列名)的表f65,但没有更多的数据。(10列x 4k行)。你知道吗

关键代码片段如下。你知道吗

df = pd.DataFrame(pd.read_excel(r'/Users/' + username + r'/Documents/working/addf6-5.xlsx', header=0))
df = df.replace('#NUM!', '')

value = chain(reversed(grouplist2), df.values.tolist())
for x in value:
    x[4] = str(x[4])
    x[7] = str(x[7])

conn = sqlite3.connect('veradb.db')
c = conn.cursor()
c.execute("DROP TABLE IF EXISTS f65")
conn.commit()
c.close()
conn.close()

conn = sqlite3.connect('veradb.db')
c = conn.cursor()
c.execute("CREATE TABLE IF NOT EXISTS f65 ('offer', 'code', 'desc', 'engine', 'cost', 'supplier', 'remark', 'podate', 'empty', 'border')")
c.executemany("INSERT INTO f65 VALUES (?,?,?,?,?,?,?,?,?,?)", value)
conn.commit()
c.close()
conn.close()

更多详细说明: 缓存数据在addf6-5中,我在grouplist2(它是一个列表)中获取了新数据,并使用chain(reversed(grouplist2), df.values.tolist())组合数据。你知道吗

为什么使用

for x in value:
    x[4] = str(x[4])
    x[7] = str(x[7])

因为我的pycharm报告“Error binding parameter 4-probably unsupported type.”&;“Error binding parameter 7-probably unsupported type.”所以我再次执行STR,尽管默认情况下它们应该是SQLite的文本。你知道吗

我试着通过

for x in value:
    x[4] = str(x[4])
    x[7] = str(x[7])
    print(x)

发现可以打印出来没错。也许吧这个证明值(列表)正确吗?你知道吗

有些人可能会怀疑“createtable”语句中是否遗漏了属性,我可以说Sqlite提供给他们的文本在默认情况下是不可键入的,我在其他文件上执行这些代码并进行了工作。你知道吗

期待您的帮助。先谢谢你。你知道吗


Tags: 文件数据代码in数据库dfforclose