Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python支持sql';追加';_Python_Mysql_Pandas - Fatal编程技术网

Python支持sql';追加';

Python支持sql';追加';,python,mysql,pandas,Python,Mysql,Pandas,我尝试使用Python的pandas to_sql命令将每月数据发送到MySQL数据库。我的程序一次运行一个月的数据,我想将新数据附加到现有数据库中。但是,Python给了我一个错误: _mysql_exceptions.OperationalError: (1050, "Table 'cps_basic_tabulation' already exists") 以下是我的连接和导出代码: conn = MySQLdb.connect(host = config.get('db', '

我尝试使用Python的pandas to_sql命令将每月数据发送到MySQL数据库。我的程序一次运行一个月的数据,我想将新数据附加到现有数据库中。但是,Python给了我一个错误:

_mysql_exceptions.OperationalError: (1050, "Table 'cps_basic_tabulation' already exists")
以下是我的连接和导出代码:

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')
我还尝试使用:

from sqlalchemy import create_engine
正在替换conn=MySQLdb.connect。。。与:

engine = mysql+mysqldb://<user>:<password>@<host>[:<port>]/<dbname>

conn   = engine.connect().connection
engine=mysql+mysqldb://:@[:]/
conn=发动机。连接()。连接
关于为什么我不能附加到数据库有什么想法吗


谢谢

从pandas 0.14开始,您必须直接提供sqlalchemy
引擎,而不是连接对象:

engine = create_engine("mysql+mysqldb://<user>:<password>@<host>[:<port>]/<dbname>")
combined.to_sql("cps_raw.cps_basic_tabulation", engine, if_exists='append')
engine=create_引擎(“mysql+mysqldb://:@[:]/”)
组合.to_sql(“cps_raw.cps_basic_tablation”,引擎,如果存在class='append')

您正在使用哪个版本的pandas?您是否尝试过通过
con=engine
而不是
con=conn
?谢谢。还有@joris谢谢你。我更新了pandas'sudopip安装——升级pandas',在这两个修复之间,一切都正常。但是,我相信主要的修复方法是更新pandas,因为我尝试了连接到MySQL的组合,但没有任何效果。更新pandas很可能解决了您的问题,但是我应该注意,无论如何建议使用sqlalchemy,因为直接使用MySQL连接对象是不推荐的,将在将来的版本中删除。