字段信息与表格对应建表:
- 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()
完成。