先定义一个函数将csv文件的数据类型与mysql的数据类型匹配,主要是日期与时间这两个数据类型的匹配。
def make_table_sql(df):
columns = df.columns.tolist()
types = df.ftypes
# 添加id 制动递增主键模式
make_table = []
for item in columns:
if 'int' in types[item]:
char = item + ' INT'
elif 'float' in types[item]:
char = item + ' FLOAT'
elif 'object' in types[item]:
char = item + ' VARCHAR(255)'
elif 'datetime' in types[item]:
char = item + ' DATETIME'
make_table.append(char)
return ','.join(make_table)
定义建立数据库与表的函数
def csv2mysql(db_name, table_name,df):
# 创建database
cursor.execute('CREATE DATABASE IF NOT EXISTS {} DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci'.format(db_name))
# 选择连接database
conn.select_db(db_name)