def connect_mysql(user, passwd, host, db, charset="utf8", port=3306):
"""
连接数据库
:return:
"""
con = MySQLdb.connect(user=user, passwd=passwd, host=host, db=db, charset=charset, port=port)
return con
def read_data(query):
"""
从数据库中读取数据并返回
:return:
"""
con = connect_mysql()
data_df = pd.read_sql(query, con=con)
return data_df
def save_data(data, operation):
"""
保存数据到数据库中
:param data:
:param operation: 操作命令
:return:
"""
con = connect_mysql()
cur = con.cursor()
pd.io.sql.to_sql(data, "data_processed", con, flavor="mysql", if_exists="replace", index=False, chunksize=10000,
dtype={"msg_content": "varchar(500)"})
return None
注:save_data 函数中,最后的 pd.io.sql.to_sql 命令中的相关参数的意义是:
flavor: 使用什么数据库
if_exists: 如果表在数据库中已经存在,则 replace: 直接替换,append: 追加
index: 是否存储 index
chunksize: 每次存储多少行
dtype: 可以重新定义相关变量的类型,以字典的形式来写
关于该命令更详细的官网资料:http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.to_sql.html