python读取Excel文件,连接MySQL数据库插入或更新表

python读取Excel文件,连接MySQL数据库插入或更新表

插入表:

import pandas as pd
from sqlalchemy import create_engine

#连接数据库
connection_mysql = create_engine('mysql+pymysql://username:password@88.88.888.888:8888/dbname?charset=utf8')
print('---insert---')
#读取excel
df = pd.read_excel('insert_data.xlsx')
#插入数据库
df.to_sql('table_name',connection_mysql, if_exists='append',index=False)
#关闭连接
connection_mysql.dispose()
print('---done---')

更新表:

import pandas as pd
import pymysql as pm

#连接数据库
db = pm.connect(host="88.88.888.888",port=8888,user="username",passwd="password",db="dbname")
#创建游标
cursor = db.cursor()
print('---update---')
#读取excel
df = pd.read_excel('update_data.xlsx')
#更新数据
data_list = df.values.tolist()
sql_replace="""replace into table_name (field1,field2,field3) values (%s,%s,%s) """
cursor.executemany(sql_replace,data_list)
#提交
db.commit()
#关闭游标
cursor.close()
#关闭连接
db.close()
要使用Python读取Excel文件数据写入MySQL数据库,可借助`pandas`读取Excel文件,用`mysql-connector-python`MySQL数据库交互。以下是具体实现步骤和示例代码: ### 安装必要的 可使用`pip`来安装`pandas`和`mysql-connector-python`: ```bash pip install pandas mysql-connector-python ``` ### 示例代码 ```python import pandas as pd import mysql.connector # 读取Excel文件 excel_file = pd.ExcelFile('your_file.xlsx') df = excel_file.parse('Sheet1') # 连接MySQL数据库 connection = mysql.connector.connect( host="localhost", user="your_username", password="your_password", database="your_database" ) # 创建游标对象 cursor = connection.cursor() # 创建格(如果格不存在) create_table_query = """ CREATE TABLE IF NOT EXISTS your_table ( id INT AUTO_INCREMENT PRIMARY KEY, column1 VARCHAR(255), column2 FLOAT, -- 根据Excel文件的列数和数据类型添加更多列 ) """ cursor.execute(create_table_query) # 插入数据 for index, row in df.iterrows(): insert_query = f"INSERT INTO your_table (column1, column2) VALUES (%s, %s)" values = (row['column1'], row['column2']) cursor.execute(insert_query, values) # 提交更改 connection.commit() # 关闭游标和连接 cursor.close() connection.close() ``` ### 代码解释 1. **读取Excel文件**:利用`pandas`的`ExcelFile`类读取Excel文件,再用`parse`方法解析指定工作数据到`DataFrame`对象中。 2. **连接MySQL数据库**:使用`mysql.connector.connect`方法连接MySQL数据库。 3. **创建格**:若格不存在,使用`CREATE TABLE`语句创建格。 4. **插入数据**:遍历`DataFrame`的每一行,使用`INSERT INTO`语句将数据插入数据库中。 5. **提交更改**:使用`connection.commit()`方法提交更改到数据库。 6. **关闭连接**:使用`cursor.close()`和`connection.close()`方法关闭游标和数据库连接。 ### 注意事项 - 要把`your_file.xlsx`替换为实际的Excel文件名。 - 要把`your_username`、`your_password`、`your_database`、`your_table`替换为实际的数据库用户名、密码、数据库名和名。 - 要依据Excel文件的列数和数据类型调整格的列定义和插入语句。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值