j r*_*iot 7 python mysql pandas
我正在尝试使用 Python 的 pandas to_sql 命令将每月数据发送到 MySQL 数据库。我的程序一次运行一个月的数据,我想将新数据附加到现有数据库中。但是,Python 给了我一个错误:
_mysql_exceptions.OperationalError: (1050, "Table 'cps_basic_tabulation' already exists")
Run Code Online (Sandbox Code Playgroud)
这是我的连接和导出代码:
conn = MySQLdb.connect(host = config.get('db', 'host'),
user = config.get('db', 'user'),
passwd = config.get('db', 'password'),
db = 'cps_raw')
combined.to_sql(name = "cps_raw.cps_basic_tabulation",
con = conn,
flavor = 'mysql',
if_exists = 'append')
Run Code Online (Sandbox Code Playgroud)
我也试过使用:
from sqlalchemy import create_engine
Run Code Online (Sandbox Code Playgroud)
将 conn = MySQLdb.connect... 替换为:
engine = mysql+mysqldb://<user>:<password>@<host>[:<port>]/<dbname>
conn = engine.connect().connection
Run Code Online (Sandbox Code Playgroud)
关于为什么我不能附加到数据库的任何想法?
谢谢!
从 pandas 0.14 开始,您必须直接提供 sqlalchemy engine,而不是连接对象:
engine = create_engine("mysql+mysqldb://<user>:<password>@<host>[:<port>]/<dbname>")
combined.to_sql("cps_raw.cps_basic_tabulation", engine, if_exists='append')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10779 次 |
| 最近记录: |