gpt4 book ai didi

Python + MySQLdb executemany

转载 作者:可可西里 更新时间:2023-11-01 07:01:50 28 4
gpt4 key购买 nike

我正在使用 Python 及其 MySQLdb 模块将一些测量数据导入 Mysql 数据库。我们拥有的数据量非常大(目前大约有 250 MB 的 csv 文件, future 还会有更多)。

目前我使用 cursor.execute(...) 导入一些元数据。这没有问题,因为这些条目只有几个。

问题是当我尝试使用 cursor.executemany() 导入大量实际测量数据时,MySQLdb 引发了一个

TypeError: not all arguments converted during string formatting

我当前的代码是

def __insert_values(self, values):
cursor = self.connection.cursor()
cursor.executemany("""
insert into values (ensg, value, sampleid)
values (%s, %s, %s)""", values)
cursor.close()

其中 values 是一个元组列表,每个元组包含三个字符串。知道这可能有什么问题吗?

编辑:

值由

生成
yield (prefix + row['id'], row['value'], sample_id)

然后一次读取一千个列表,其中行和迭代器来自 csv.DictReader

最佳答案

回想起来,这是一个非常愚蠢但难以发现的错误。 values 是 sql 中的关键字,因此表名 values 需要用引号引起来。

def __insert_values(self, values):
cursor = self.connection.cursor()
cursor.executemany("""
insert into `values` (ensg, value, sampleid)
values (%s, %s, %s)""", values)
cursor.close()

关于Python + MySQLdb executemany,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/974702/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com