系统:Windows 7
语言版本:Anaconda3-4.3.0.1-Windows-x86_64
编辑器:pycharm-community-2016.3.2
- 这个系列讲讲Python对sqlite3的操作
- 本文介绍:将已知数据写入数据库
Part 1:示例说明
- 当我们建立一个数据库后,很多时候需要将原来Excel的数据写入到数据库中,例如一些常数项信息等
- 有多种方法可以实现,如数据库管理软件自带的导入功能,遗憾的是大部分都不好用;还有就是本文提到的方法,撰写代码,不同的情况,稍作修改即可
- 为了降低代码的复杂度,提前将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:部分代码解读
-
pd.read_excel(excel_address)
,读取Excel文件中的工作表,默认第1行作为列名 -
for index, row in df.iterrows():
对df进行按行遍历- 通过
row["A"]
,其中A表示对应的列名,获取某行某列的值
- 通过
-
Insert Into 表名 (字段s) Values(对应字段的取值)
,向数据库表中新增内容的标准格式
df
本文为原创作品,欢迎分享朋友圈
长按图片识别二维码,关注本公众号
Python 优雅 帅气