我正在使用 Python 及其 MySQLdb 模块将一些测量数据导入 Mysql 数据库。我们拥有的数据量相当大(目前大约有 250 MB 的 csv 文件,未来还会有更多)。
目前我使用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()
where values
是一个元组列表,每个元组包含三个字符串。有什么想法这可能有什么问题吗?
Edit:
这些值是由生成的
yield (prefix + row['id'], row['value'], sample_id)
然后一次读入一个列表,其中行和迭代器来自csv.DictReader
.