使用 SQLAlchemy 和 Pandas 插入数据 - Python
Posted
技术标签:
【中文标题】使用 SQLAlchemy 和 Pandas 插入数据 - Python【英文标题】:Inserting Data with SQLAlchemy and Pandas - Python 【发布时间】:2018-09-05 22:33:48 【问题描述】:我在很多地方找了很多答案,但我真的没有找到。
问题是: 我有一个 CSV 文件,我正在填充一个 pandas 数据框,然后我想将这些数据框插入到 mysql 数据库中。
engine = create_engine("mysql+mysqldb://USER:"+'PSWRD'+"@HOST:3306/schema", echo=False)
with engine.connect() as conn, conn.begin():
df.to_sql(name='tbl_TestPython',con=conn, if_exists='append', index=False)
当我运行此程序时,我没有收到任何错误,但在我的数据库中没有任何变化(没有插入任何内容)。我尝试将“if_exists”更改为“替换”但没有奏效,还尝试删除“使用引擎... .”,只写“df.to_sql...”这一行,但也没有任何错误或插入的数据
有人可以帮忙吗?
【问题讨论】:
检查information_schema.tables
您的表是否已在另一个数据库中创建...
我看到了,表在同一个数据库中;/
所以该表确实存在?尝试使用另一个表名,例如'tbl_TestPython2'
,并检查它是否会在 MySQL DB 中创建
是的,我试过了,我遇到了问题。我不知道为什么我的代理阻止了我与数据库的连接并且它没有出现在 python 中(我看到我的网络流量)。所以这一切都解决了谢谢大佬!
【参考方案1】:
伙计们,经过一段时间的尝试,我终于在 MaxU 的帮助下了解了发生的事情。
问题出在我的网络上,当我尝试插入某些内容时,代理阻止了来自 MysqlDB 的连接。我改变了这个,现在它工作正常
【讨论】:
以上是关于使用 SQLAlchemy 和 Pandas 插入数据 - Python的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 pandas sqlalchemy 和 psycopg2 处理 NaT
Pandas 和 SQLAlchemy:使用来自 engine.begin() 的连接时,带有 SQLAlchemy 2.0 fututre=True 的 df.to_sql() 会引发错误
如何在 SQLAlchemy 的`create_engine` 中使用`charset` 和`encoding`(创建pandas 数据框)?