【发布时间】:2021-07-03 20:26:53
【问题描述】:
我必须将 pandas 数据框写入 PostgreSQL 表。在这里你可以找到一段 sn-p 代码:
values = [1, 1]
d = {'col1': values, 'col2': values}
df = pd.DataFrame(data=d)
df.to_sql('prograd_dashboard', con=dbConnection, if_exists='replace', index=False, method='multi')
我遇到了这个错误信息:
sqlalchemy.exc.ProgrammingError: (ProgrammingError) can't adapt type 'dict' 'INSERT INTO prograd_dashboard (col1, col2) VALUES (%(col1)s, %(col2)s)' {'col1': {'col1': 1, 'col2': 1}, 'col2': {'col1': 1, 'col2': 1}}
如您所见,数据框中没有字典。然而,实际上在 sqlalchemy 生成的插入命令中有一个 dict。
如果我设置 method=None,代码就可以完美运行。但是,随着记录数量的增加,性能会下降。
我该如何解决这个问题? 谢谢!
【问题讨论】:
标签: python pandas sqlalchemy pandas-to-sql