我在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或其他软件包,任何人都可以告诉我这里的错误是什么。 提前致谢
答案 0 :(得分:9)
在pandas版本0.19中不推荐使用'mysql'。您必须使用sqlalchemy中的引擎来创建与数据库的连接。
bot.dialog('/mydialog', [
function (session) {
// Ask the user to select an item from a carousel.
var msg = new builder.Message(session)
.textFormat(builder.TextFormat.xml)
.attachmentLayout(builder.AttachmentLayout.carousel)
.attachments([
new builder.ThumbnailCard(session)
.title("Card number 1")
.text("Description first card")
.images([
builder.CardImage.create(session, "https://www.example.org/img1.gif")
.tap(builder.CardAction.showImage(session, "ttps://www.example.org/img1.gif")),
])
.buttons([
builder.CardAction.openUrl(session, "https://google.com", "Website"),
builder.CardAction.imBack(session, "select:100", "button 1"),
builder.CardAction.imBack(session, "select:101", "Button2")
]),
new builder.ThumbnailCard(session)
.title("Card 2")
.text("Description card 2")
.images([
builder.CardImage.create(session, "https://image.jpg")
.tap(builder.CardAction.showImage(session, "https://image.jpg")),
])
.buttons([
builder.CardAction.openUrl(session, "https://google.com", "Website"),
builder.CardAction.imBack(session, "select:200", "button3"),
builder.CardAction.imBack(session, "select:201", "button4")
]),
]);
builder.Prompts.choice(session, msg, "select:100|select:101|select:200|select:201");
},
function (session, results) {
var action, item;
var kvPair = results.response.entity.split(':');
switch (kvPair[0]) {
case 'select':
action = 'selected';
break;
}
switch (kvPair[1]) {
case '100':
item ="/dialog1";
break;
case '101':
item ="/dialog2";
break;
case '200':
item ="/dialog3";
break;
case '201':
item ="/dialog4";
break;
}
session.beginDialog(item);
}
]);
定义引擎时,需要指定用户,密码,主机和数据库。在您的具体情况下,这应该是:
from sqlalchemy import create_engine
engine = create_engine("mysql+mysqldb://USER:"+'PASSWORD'+"@localhost/DATABASE")
df.to_sql(con=engine, if_exists='append', index=False)
答案 1 :(得分:0)
您flavor
使用的选项似乎不再存在。简要介绍一下这些文档证实了这一点:
风味:'sqlite',默认无
DEPRECATED:此参数将在以后的版本中删除,因为如果未安装SQLAlchemy,“sqlite”是唯一受支持的选项。