我正在尝试使用与 sqlalchemy 一起使用的 pscycopg2 模块将数据框插入到我的 postgres 数据库中。该过程将 excel 文件加载到 pandas 数据框中,然后通过预定义的表架构将数据框插入到数据库中。
我相信这些是相关的代码行:
post_meta.reflect(schema="users")
df = pd.read_excel(path)
table = sql.Table(table_name, post_meta, schema="users")
dict_items = df.to_dict(orient='records')
connection.execute(table.insert().values(dict_items))
我收到以下错误:
<class 'sqlalchemy.exc.ProgrammingError'>, ProgrammingError("(psycopg2.ProgrammingError) can't adapt type 'numpy.int64'",)
dataframe中的所有数据字段类型都是int64。
我似乎找不到关于此错误的原因及其含义的类似问题或信息。
任何方向都很好。 谢谢
最佳答案
看起来您正在尝试插入 numpy 整数,而 psycopg2 不知道如何处理这些对象。您需要先将它们转换为普通的 Python 整数。也许尝试在每个值上调用 int()
函数...如果失败,请提供更多代码上下文。
关于python - 使用 psycopg2 模块将值插入数据库时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41449501/