Python SQLAlchemy批量插入失败

Python SQLAlchemy批量插入失败,python,sqlalchemy,Python,Sqlalchemy,我在循环中使用SQLAlchemy进行批量插入,如下所示: for table, batch in pendingInserts: self.conn.execute(table.insert(), batch) 其中,batch是dict的列表,table是SQLAlchemy表。第一批insert成功执行,但在同一表上insert的后续迭代中失败,错误如下: StatementError:参数组45中的绑定参数'security\u exchange'需要一个值(原始原因:Inva

我在循环中使用SQLAlchemy进行批量插入,如下所示:

for table, batch in pendingInserts:
    self.conn.execute(table.insert(), batch)
其中,
batch
dict
的列表,
table
是SQLAlchemy表。第一批insert成功执行,但在同一表上insert的后续迭代中失败,错误如下:

StatementError:参数组45中的绑定参数'security\u exchange'需要一个值(原始原因:InvalidRequestError:参数组45中的绑定参数'security\u exchange'需要一个值)u'插入...


这里的
security\u exchange
在DB(PostgreSQL)中是可为空的列,因此它不是强制性的,在批处理的所有条目中都会被忽略。我不明白为什么第一次批量插入成功,但在同一个表上第二次插入失败。同样,对于同一个表,为所有批次中的所有DICT提供的列数始终保持不变。

批次插入需要所有项目为批次中的所有项目提供相同的列集。在我的例子中,批处理中的某些项目跳过了一些可选列(具有默认值)