python - 不支持 pandas dataframe 到 mysql db 错误数据库风格 mysql

标签 python python-2.7 python-3.x pandas

我在 pandas dataframe df 中有一张表。

   product_id_x    product_id_y    count       date
0   288472           288473          1     2016-11-08 04:02:07
1   288473           2933696         1     2016-11-08 04:02:07
2   288473           85694162        1     2016-11-08 04:02:07

我想把这张表保存到mysql数据库中。

我正在使用 MySQLdb 包。

import MySQLdb
conn = MySQLdb.connect(host="xxx.xxx.xx.xx", user="name", passwd="pwd", db="dbname")

df.to_sql(con = conn, name = 'sample_insert', if_exists = 'append', flavor = 'mysql', index = False)

我使用此查询将其放入我的数据库中。

但我收到错误。

ValueError: database flavor mysql is not supported

我的所有列的数据类型都是 str。

type(df['product_id_x'][0]) = str
type(df['product_id_y'][0]) = str
type(df['count'][0])        = str
type(df['date'][0])         = str

我不想使用 sqlalchemy 或其他包,谁能告诉我这里的错误是什么。 提前致谢

最佳答案

pandas 版本 0.19 中不推荐使用 flavor 'mysql'。您必须使用 sqlalchemy 的引擎来创建与数据库的连接。

from sqlalchemy import create_engine
engine = create_engine("mysql+mysqldb://USER:"+'PASSWORD'+"@localhost/DATABASE")
df.to_sql(con=engine, if_exists='append', index=False)

定义引擎时,需要指定用户、密码、主机和数据库。在您的具体情况下,这应该是这样的:

engine = create_engine("mysql+mysqldb://name:pwd@xxx.xxx.xx.xx/dbname")

关于python - 不支持 pandas dataframe 到 mysql db 错误数据库风格 mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40842898/

相关文章:

python - 从 django Rest Framework url 获取参数值的问题

python - 如何使用分配不同颜色的散点图绘制多个分类数据?

python - 将 OrderedDict 解析为 Python 列表

python - glob.iglob 从文件名中删除路径

python-3.x - 每当从 PyQt5 迁移到 Pyside2 后调用 QFileDialog 时,QThread 关闭

python - 覆盖父类中使用的类

python - 将 sprite 与 pyganim 一起使用时出现异常

python - 在通过 SPARQLwrapper 查询时,如何告诉 Stardog 使用推理?

python - 在 IntelliJ 中调试 Crossbar.io 应用程序

Python - 使用 map(sys.stdin.readline()) 存储一个字符串和一个 int