0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Python+Excel怎么创建数据库表

汽车电子技术 来源:Python数据分析之旅 作者:cauwfq 2023-02-24 15:01 次阅读

pYYBAGP4YDOAN-PSAAC0bxpmYK8709.png

一.项目背景

一个目录下有若干个Csv/Excel文件,现在需求是根据这些Csv文件的表头,生成对
应的SQL建表语句。

二.实现过程

1.获取文件
》》遍历路径下文件
》》获取Excel文件
》》返回文件路径

#获取文件路径
def get_path(file_path):
    #存储路径信息
    path_list=[]
    #遍历路径下文件
    for file in os.listdir(file_path):
        #获取文件名称
        file_name=os.path.splitext(file)[0]
        #判断是否为Excel文件
        if file.endswith('.xlsx'):
            #添加文件路径
            path_list.append((os.path.join(file_path,file),file_name))
    #返回文件路径
    return path_list

poYBAGP4YFqADlc-AAAw9A3NnGI179.png
2.构建Mysql类
》》初始化Mysql连接
》》运行SQL语句

#MySQL类
class Mysql_connect():
    def __init__(self, host, user, password, database):
        #初始化连接信息
        self.conn = pymysql.connect(host=host,
                                    user=user,
                                    password=password,
                                    database=database
                                    )

    #运行sql语句
    def run_sql(self, sql):
        #获取游标
        cursor = self.conn.cursor()
        #执行SQL语句
        cursor.execute(sql)
        #提交事务
        self.conn.commit()
        #关闭连接
        self.conn.close()
3.获取sql语句
》》读取文件名称
》》获取表头和类型
》》生成SQL语句

#获取sql语句
def get_sql(table_name,df,length=255):
    '''
    table_name:表名称
    df:DataFrame数据结构
    length:默认是255
    '''
    
    #存储sql语句列表
    create_list=[]
    #遍历每一列
    for col in df.columns.tolist():
        #判断数据类型
        if df[col].dtypes=='float':
            #构建sql语句
            sql_col=col+' '+'float'
            #添加到列表
            create_list.append(sql_col)
        #判断数据类型
        elif df[col].dtypes=='int64' or df[col].dtypes=='int32' or df[col].dtypes=='int':
            #构建sql语句
            sql_col=col+' '+'int'
            #添加到列表
            create_list.append(sql_col)
         #判断数据类型
        elif df[col].dtypes=='datetime64[ns]':
             #构建sql语句
            sql_col=col+' '+'datetime'
            #添加到列表
            create_list.append(sql_col)
        else:
            #构建sql语句
            sql_col=col+' '+f'varchar({length})'
            #添加到列表
            create_list.append(sql_col)
    #添加主键,替换列表中不必要内容
    table_str='id int(64) primary key not null auto_increment,'+str(create_list).replace('[','').replace(']','').replace("'","")
    #设置引擎
    sql_create=f'''create table if not exists {table_name}({table_str})'''+' engine=innodb default charset=utf8'
    #返回sql语句
    return sql_create

pYYBAGP4YIKAEszUAABZytDg7Ws470.png
4.生成数据库表格
》》运行SQL语句生成表格

#遍历该目录下文件
for files in get_path('./'):
    #获取文件名称
    name=files[1]
    #读取表格
    df=pd.read_excel(files[0])
    #获取sql语句
    sql=get_sql(name,df)
    #连接MySQL
    conn=Mysql_connect('127.0.0.1','root','253611','test')
    #输出sql语句
    print(sql+'n')
    #运行sql语句
    conn.run_sql(sql)

poYBAGP4YJaAOORAAABrCyiYcZQ955.png
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • SQL
    SQL
    +关注

    关注

    1

    文章

    773

    浏览量

    44236
  • 文件
    +关注

    关注

    1

    文章

    570

    浏览量

    24811
  • csv
    csv
    +关注

    关注

    0

    文章

    39

    浏览量

    5851
收藏 人收藏

    评论

    相关推荐

    labviEW中使用LabSQL在数据库创建

    的说明请搜索百度,另外需要下载LabSQL才能运行这个程序。补:程序中最后应该加一个别Connection Close.vi的,不知怎么忘了加了,在使用中是要加上的。 对于创建新的ACCESS数据库而不是在现在的数据库里面新建
    发表于 03-23 10:38

    有个excel数据表 想导入鸿蒙数据库,求sqlite数据使用文档?

    有个excel 数据表 想导入鸿蒙数据库, 求sqlite数据使用文档?
    发表于 06-09 10:10

    创建与使用数据库课程

      本章要点                 创建数据库是实施数据库
    发表于 04-14 16:01 0次下载

    如何创建目标数据库

    如何创建目标数据库 在文您将学习创建目标数据库和所有与发起方数据库不存在依赖关系的 Service Broker 目标对
    发表于 03-26 11:54 1335次阅读

    JAVA教程之创建与删除数据库中的

    JAVA教程之创建与删除数据库中的,很好的JAVA的资料,快来学习吧。
    发表于 04-13 09:47 3次下载

    数据库教程之数据库创建与管理详细资料免费下载

    本文档的主要内容详细介绍的是数据库教程之数据库创建与管理详细资料免费下载。内容包括了:SQL Server数据库概述, 创建
    发表于 10-19 10:41 18次下载
    <b class='flag-5'>数据库</b>教程之<b class='flag-5'>数据库</b>的<b class='flag-5'>创建</b>与管理详细资料免费下载

    创建新的数据库和更改SQL Server CE数据库中的数据操作教程免费下载

    SQL Server CE 中的数据库是存储结构化数据集合。在可以存储数据库之前,必须创建数据库
    发表于 09-19 11:28 5次下载

    怎么创建SQLite数据库

    大家好,今天给大家分享一篇如何创建SQLite数据库的文章。
    的头像 发表于 02-22 16:21 6074次阅读
    怎么<b class='flag-5'>创建</b>SQLite<b class='flag-5'>数据库</b>

    数据库建立|数据库创建的方法?

    ,用于支持数据的管理、存储和检索。 手动创建数据库 手动创建数据库是最基本的方法。它需要创建一个
    的头像 发表于 07-14 11:15 1312次阅读

    SQLite数据库python的区别

    SQLite数据库python的区别 SQLite是一种轻量级关系型数据库管理系统,是一个嵌入式的数据库引擎。Python是一种高级编程语
    的头像 发表于 08-28 16:41 907次阅读

    python有什么用 如何用python创建数据库

    python有什么用 如何用python创建数据库 Python是一种高级编程语言,可以用于开发各种类型的应用程序和工具。它的广泛应用使它在
    的头像 发表于 08-28 16:41 1227次阅读

    python读取数据库数据 python查询数据库 python数据库连接

    python读取数据库数据 python查询数据库 python
    的头像 发表于 08-28 17:09 1893次阅读

    使用SQL语句创建数据库

    使用SQL语句创建数据库 在今天的信息社会中,数据库是信息化建设的关键要素之一,已经成为企业和组织的重要管理工具。创建数据库
    的头像 发表于 08-28 17:09 4186次阅读

    sql怎么用代码创建数据库

    sql怎么用代码创建数据库 SQL是一种结构化查询语言,用于通过编程语言与数据库进行通信。它允许用户从数据库中检索、修改和删除数据。在本文中
    的头像 发表于 08-28 17:09 2797次阅读

    mysql数据库如何创建数据表

    MySQL是一种常用的关系型数据库管理系统,可以用于创建和管理数据表。下面是一篇详细的关于MySQL数据库如何创建
    的头像 发表于 11-21 11:08 1861次阅读