在执行下面的这个连接mysql数据库的简单的范例代码时,出错了。请问哪个帮帮忙看下?
import pandas as pd
from sqlalchemy import create_engine
# 示例DataFrame
data = {
'name': ['Alice', 'Bob', 'Charlie'],
'age': [25, 30, 35],
'city': ['New York', 'Los Angeles', 'Chicago']
}
df = pd.DataFrame(data)
# 数据库连接信息
username = 'root'
password = '******'
host = 'localhost' # 例如 'localhost' 或 '127.0.0.1'
port = '3306' # 例如 '3306'
database = 'abc'
table_name = 'ceshi'
# 创建数据库连接引擎
engine = create_engine(f'mysql+pymysql://{username}:{password}@{host}:{port}/{database}')
# 将DataFrame写入MySQL数据库
# 如果表不存在,将自动创建表。如果存在,将替换表中的数据(设置if_exists='replace')
# 若不想替换,可以使用if_exists='append'来追加数据,或使用if_exists='fail'来避免覆盖
df.to_sql(name=table_name, con=engine, if_exists='replace', index=False)
print("DataFrame has been written to MySQL database successfully.")
然后就出现了以下错误
C:\Users\abc\venv\python\Scripts\python.exe C:/Users/abc/python/修改/操作MySQL.py
Traceback (most recent call last):
File "C:/Users/abc/python/修改/操作MySQL.py", line 26, in <module>
df.to_sql(name=table_name, con=engine, if_exists='replace', index=False)
File "C:\Users\abc\venv\python\lib\site-packages\pandas\core\generic.py", line 2882, in to_sql
method=method,
File "C:\Users\abc\venv\python\lib\site-packages\pandas\io\sql.py", line 708, in to_sql
pandas_sql = pandasSQL_builder(con, schema=schema)
File "C:\Users\abc\venv\python\lib\site-packages\pandas\io\sql.py", line 788, in pandasSQL_builder
return SQLDatabase(con, schema=schema, meta=meta)
File "C:\Users\abc\venv\python\lib\site-packages\pandas\io\sql.py", line 1410, in __init__
meta = MetaData(self.connectable, schema=schema)
TypeError: __init__() got multiple values for argument 'schema'
Process finished with exit code 1