我是靠谱客的博主 健壮犀牛,最近开发中收集的这篇文章主要介绍关于python连接mysql相关知识(2),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

之前导入数据库的方法是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)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(38)

评论列表共有 0 条评论

立即
投稿
返回
顶部