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

时间:2022-07-23
本文章向大家介绍Python-sqlite3-08-往数据库中写入Excel中信息,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

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

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

Part 1:示例说明

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

Excel信息

数据库内容

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()

代码截图

执行结果

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

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