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()
ここで、values
はそれぞれ3つの文字列を含むタプルのリストです。これで何が間違っている可能性がありますか?
編集:
値はによって生成されます
yield (prefix + row['id'], row['value'], sample_id)
次に、行がであり、イテレータがから来る一度に1000個のリストを読み込みますcsv.DictReader
。