为什么 Pandas'to_sql 在写入 MySQL 时会失败并出现'参数数量错误”错误?

Linda Hamilton
发布: 2024-11-27 15:20:11
原创
514 人浏览过

Why Does Pandas' to_sql Fail with a

使用 SQLAlchemy 的 to_sql 对 Pandas 写入 MySQL 数据库进行故障排除

尝试使用 SQLAlchemy 的 to_sql 方法将 Pandas DataFrame 写入 MySQL 数据库时,您可能会遇到以下错误:类似于:

DatabaseError: Execution failed on sql 'SELECT name FROM sqlite_master
WHERE type='table' AND name=?;': Wrong number of arguments during
string formatting
登录后复制

此错误表示正在执行的 SQL 查询存在差异。有趣的是,它建议尝试从 SQLite 数据库而不是 MySQL 中进行选择。

要纠正此问题并使用 SQLAlchemy 引擎和 mysqlconnector 与 MySQL 建立正确的连接,请按照以下步骤操作:

  • 直接利用引擎对象作为连接参数to_sql:
import pandas as pd
import mysql.connector
from sqlalchemy import create_engine

# Create SQLAlchemy engine
engine = create_engine('mysql+mysqlconnector://[user]:[pass]@[host]:[port]/[schema]', echo=False)

# Read and write using the engine connection
data = pd.read_sql('SELECT * FROM sample_table', engine)
data.to_sql(name='sample_table2', con=engine, if_exists='append', index=False)
登录后复制

此修改确保用于读取和写入的连接是连接到 MySQL 的 SQLAlchemy 引擎。它消除了使用原始连接的初始尝试,这可能会触发 SQLite 相关错误。

以上是为什么 Pandas'to_sql 在写入 MySQL 时会失败并出现'参数数量错误”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板