美文网首页
Python-sqlite3-08-往数据库中写入Excel中信

Python-sqlite3-08-往数据库中写入Excel中信

作者: Data_Python_VBA | 来源:发表于2020-08-17 21:07 被阅读0次

    微信公众号原文

    系统:Windows 7
    语言版本:Anaconda3-4.3.0.1-Windows-x86_64
    编辑器:pycharm-community-2016.3.2

    • 这个系列讲讲Python对sqlite3的操作
    • 本文介绍:将已知数据写入数据库

    Part 1:示例说明

    1. 当我们建立一个数据库后,很多时候需要将原来Excel的数据写入到数据库中,例如一些常数项信息等
    2. 有多种方法可以实现,如数据库管理软件自带的导入功能,遗憾的是大部分都不好用;还有就是本文提到的方法,撰写代码,不同的情况,稍作修改即可
    3. 为了降低代码的复杂度,提前将Excel文件内容稍作规范
      • 只保留一个Excel工作表,方便定位
      • 第1行新增字段名,方便后续df操作

    Excel信息

    1.png

    数据库内容

    2.png

    Part 2:代码

    import sqlite3
    import os
    import pandas as pd
    
    current_address = os.path.dirname(os.path.abspath(__file__))
    db_address = os.path.join(current_address, "数据库.db")
    excel_address = os.path.join(current_address, "基础数据.xlsx")
    
    # 读取Excel数据
    df = pd.read_excel(excel_address)
    print(df)
    
    table_name = "constants"
    conn = sqlite3.connect(db_address)
    cur = conn.cursor()
    
    fields_name = "C, D"
    
    for index, row in df.iterrows():
        a = row["A"]
        b = row["B"]
        fields_value = "'{0}', {1}".format(a, b)
        sql = "Insert Into {0} ({1}) Values({2})".format(table_name, fields_name, fields_value)
    
        cur.execute(sql)
        conn.commit()
    
    conn.close()
    
    
    

    代码截图

    3.png

    执行结果

    4.png

    Part 3:部分代码解读

    1. pd.read_excel(excel_address),读取Excel文件中的工作表,默认第1行作为列名
    2. for index, row in df.iterrows():对df进行按行遍历
      • 通过row["A"],其中A表示对应的列名,获取某行某列的值
    3. Insert Into 表名 (字段s) Values(对应字段的取值),向数据库表中新增内容的标准格式

    df

    5.png

    本文为原创作品,欢迎分享朋友圈

    长按图片识别二维码,关注本公众号
    Python 优雅 帅气


    12x0.8.jpg

    相关文章

      网友评论

          本文标题:Python-sqlite3-08-往数据库中写入Excel中信

          本文链接:https://www.haomeiwen.com/subject/uwccjktx.html