概述
之前导入数据库的方法是SQL语句和集合python正常编程的方法,整个流程相对较复杂,在这里我介绍一种更加简便的方法:
即结合pandas和sqlalchemy来将数据导入数据库,代码如下:
#!/usr/bin/env python3
#coding=utf-8
import pymysql
import pandas as pd
from sqlalchemy import create_engine
host='localhost'
port=3306
user='root'
password=''
db='data_zj'
con=create_engine(str(r"mysql+pymysql://%s:" + '%s' + "@%s/%s?charset=utf8") % (user, password, host, db))
def invert_database(file,field):
df=pd.read_excel(file,encoding="utf-8")
print(df)
df.to_sql(field,con=con,if_exists='append',index=False)
invert_database(r'D:软件整理后的数据城市编码后MySQLData农业.xlsx','agriculture')
在这里有几点要说明一下:
(1)关于连接数据库,常见的是这样的表达:
create_engine(str(r"mysql+pymysql://%s:" + '%s' + "@%s/%s") % (user, password, host, db))
这样做会造成乱码,所以应该修改成这样:
create_engine(str(r"mysql+pymysql://%s:" + '%s' + "@%s/%s?charset=utf8") % (user, password, host, db))
(2)if_exists有三种情况:
if_exists='fail',表示如果数据库中已经存在这样的表格,在这里将不做任何操作;
if_exists='append',表示如果数据库中存在有这样的表格,那么就插入数据,在这里要补充一点,表格数据的列名要和数据库中表格的列名要相同,这样才能匹配插入数据。如果不存在这样的表格,那么就创建表格。
if_exists='replace',表示如果数据库中存在这样的表格,那么就删除它并重新创建表格再插入数据。
(3)关于navicat for mysql 如何将表ID排序重1开始的问题
在这里我的解决方法是:
第一步,打开数据库:
第二步,选中目标表格并按F6键
+
然后输入TRUNCATE TABLE +表格名,即可清除这个表,使ID重新从1自增。
最后
以上就是健壮犀牛为你收集整理的关于python连接mysql相关知识(2)的全部内容,希望文章能够帮你解决关于python连接mysql相关知识(2)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复