将Excel表中数据导入MySQL数据库

1、准备好Excel表:

2、数据库建表case2

字段信息与表格对应建表:

3、实现代码

python 复制代码
import pymysql
import pandas as pd
import openpyxl

'''
从excel表里读取数据后,再存入到mysql数据库。
需要安装openpyxl pip install openpyxl
'''
# 读入数据:表格列名:user_id,user_name,user_password,is_black
df = pd.read_excel('D:/pythonCode/pythonProject8/case_information_1800_csv.xlsx')
# 连接数据库
db = pymysql.connect(host="localhost", user="root", password="123456", database="medical")
# 获取游标对象
cursor = db.cursor()
# execute(query,args=None) => args为序列,query中必须使用%s做占位符
insert_sql = "insert into case2(case_id,case_name,case_introduction,case_alias,case_medical_insurance,case_infectivity,case_fre_occ_population,case_related_symptoms,case_dep_main,case_dep_sub,case_detail_symptoms,case_therapeutic_method_short,case_therapeutic_method_long,case_information_link) values(%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)"

# 遍历excel表里的数据

# len(df) 表格的行数
for i in range(1, len(df)):
    case_id = df.iloc[i, 0]  # 第i行第0列(case_id)   第0行数据不是列名的那一行,就是真实数据的那一行。
    case_name = df.iloc[i, 1]  # 第i行第2列(case_name)列
    case_introduction = df.iloc[i, 2]
    case_alias = df.iloc[i, 3]
    case_medical_insurance = df.iloc[i, 4]
    case_infectivity = df.iloc[i, 5]
    case_fre_occ_population = df.iloc[i, 6]

    case_related_symptoms = df.iloc[i, 7]
    case_dep_main = df.iloc[i, 8]
    case_dep_sub = df.iloc[i, 9]
    case_detail_symptoms = df.iloc[i, 10]
    case_therapeutic_method_short = df.iloc[i, 11]
    case_therapeutic_method_long = df.iloc[i, 12]
    case_information_link = df.iloc[i, 13]
    # values中的值有个类型的强制转换,否则会出错
    values = (str(case_id), str(case_name), str(case_introduction),str(case_alias),str(case_medical_insurance),str(case_infectivity),str(case_fre_occ_population),
              str(case_related_symptoms),str(case_dep_main),str(case_dep_sub),str(case_detail_symptoms),str(case_therapeutic_method_short),str(case_therapeutic_method_long),str(case_information_link))
    # 执行sql
    cursor.execute(insert_sql, values)

# 关闭游标
cursor.close()
# 提交数据
db.commit()
# 关闭数据库
db.close()

完成。

相关推荐
白远山7 分钟前
货运跑腿搬家平台开发实战:从需求分析到落地部署指南
数据库·数据挖掘·需求分析
步行cgn15 分钟前
Spring 注入 Properties 详解
java·python·spring
geovindu19 分钟前
sql: Data Modeling Patterns
数据库·sql·设计模式·sqlserver
shirsl24 分钟前
算法 Day3-队列 / deque + 链表
数据结构·python·算法·链表
上海蓝色星球26 分钟前
蓝色星球NG-AIOS新型AI工业操作系统重磅发布——以本体智能为内核,重构“AI+制造“新范式
大数据·数据库·人工智能·机器人
名字还没想好☜33 分钟前
Python 的 __call__ 实战:让实例像函数一样被调用,做带状态计数器、缓存器与可配置策略
开发语言·后端·python·缓存·编程语言
瀚高PG实验室34 分钟前
瀚高数据库如何克隆表
数据库·sql·postgresql·瀚高数据库
cpolar技术支持40 分钟前
AI Agent 跑半小时就忘目标?用检查点与任务账本做可恢复长任务,cpolar 分享只读时间线
python·sqlite·cpolar·ai agent·任务恢复
张小姐的猫1 小时前
【AI大模型接入SDK】 —— SQLite上手
linux·开发语言·c++·人工智能·python·log4j
雨辰AI1 小时前
信创多租户项目 9 大踩坑|数据隔离失效、权限越权终极解决(金仓 / 达梦 / 高斯全库适配)
java·大数据·数据库·后端