请采用pymysql库操作MySQL数据库实现以下功能的Python代码,要求:从地址D:\1\中找到Excel表A,将表A中第一页的数据读取并写入数据库B中的C表
时间: 2023-05-30 13:05:33 浏览: 106
以下是Python代码:
```python
import pymysql
import pandas as pd
# 连接MySQL数据库
conn = pymysql.connect(host='localhost', port=3306, user='root', password='password', db='B', charset='utf8')
# 读取Excel表A中第一页的数据
df = pd.read_excel(r'D:\1\A.xlsx', sheet_name=0)
# 将数据写入数据库B中的C表
cursor = conn.cursor()
for i in range(len(df)):
cursor.execute("INSERT INTO C (col1, col2, col3) VALUES (%s, %s, %s)", (df.iloc[i][0], df.iloc[i][1], df.iloc[i][2]))
conn.commit()
# 关闭数据库连接
cursor.close()
conn.close()
```
其中,需要将`password`替换为实际的MySQL密码。另外,假设表A中包含3列数据,分别为`col1`、`col2`和`col3`,则在插入数据时需要将这3列数据对应到数据库B的C表的3个列中。如果表A的数据列数和数据库B的C表的列数不一致,需要进行相应的调整。
相关问题
如何用python代码优雅地实现以下功能,从Excel读取数据,批量入mysql数据库 其中Excel的标题为acc_key,issuance_date,issuance_number,tracking_number,logistics_company_name,Excel的名称为shippment.XLS,Excel的路劲在当前目录下,mysql数据库的库为py,表名:logistics_trajectory,数据库对应的表字段名跟Excel一样,也是acc_key,issuance_date,issuance_number,tracking_number,logistics_company_name,IP:192.168.0.126,账号:root 密码:quc@2022@din
可以使用Python中的pandas和pymysql库来实现这个功能。具体实现步骤如下:
1. 导入所需库:
```
import pandas as pd
import pymysql
```
2. 读取Excel数据:
```
df = pd.read_excel('./shippment.xls')
```
其中,'./shippment.xls'是Excel文件的路径,可以根据实际情况进行修改。
3. 连接MySQL数据库:
```
conn = pymysql.connect(host='192.168.0.126', port=3306, user='root', password='quc@2022@din', db='py')
cursor = conn.cursor()
```
其中,host是MySQL的IP地址,user和password是登录MySQL时使用的用户名和密码,db是要连接的数据库名称。
4. 遍历Excel数据,插入到MySQL数据库中:
```
for index, row in df.iterrows():
acc_key = row['acc_key']
issuance_date = row['issuance_date']
issuance_number = row['issuance_number']
tracking_number = row['tracking_number']
logistics_company_name = row['logistics_company_name']
sql = "INSERT INTO logistics_trajectory(acc_key, issuance_date, issuance_number, tracking_number, logistics_company_name) \
VALUES ('%s', '%s', '%s', '%s', '%s')" % (acc_key, issuance_date, issuance_number, tracking_number, logistics_company_name)
cursor.execute(sql)
conn.commit()
```
其中,%s表示要插入的数据,这里使用了字符串格式化来构造SQL语句。
5. 关闭数据库连接:
```
cursor.close()
conn.close()
```
完整代码如下:
```
import pandas as pd
import pymysql
df = pd.read_excel('./shippment.xls')
conn = pymysql.connect(host='192.168.0.126', port=3306, user='root', password='quc@2022@din', db='py')
cursor = conn.cursor()
for index, row in df.iterrows():
acc_key = row['acc_key']
issuance_date = row['issuance_date']
issuance_number = row['issuance_number']
tracking_number = row['tracking_number']
logistics_company_name = row['logistics_company_name']
sql = "INSERT INTO logistics_trajectory(acc_key, issuance_date, issuance_number, tracking_number, logistics_company_name) \
VALUES ('%s', '%s', '%s', '%s', '%s')" % (acc_key, issuance_date, issuance_number, tracking_number, logistics_company_name)
cursor.execute(sql)
conn.commit()
cursor.close()
conn.close()
```
python怎么把excel写入pymysql数据库
在Python中,你可以使用`pandas`库读取Excel文件,并结合`pymysql`连接MySQL数据库,然后将数据插入到表中。这里是一个简单的步骤说明:
首先,你需要安装必要的库,如果你还没有安装,可以使用pip进行安装:
```bash
pip install pandas mysql-connector-python
```
接下来,使用以下代码示例:
```python
import pandas as pd
import pymysql
# 1. 加载Excel数据
df = pd.read_excel('your_file.xlsx') # 替换 'your_file.xlsx' 为你的Excel文件路径
# 2. 连接到MySQL数据库
cnx = pymysql.connect(user='your_username', password='your_password',
host='your_host', database='your_database')
cursor = cnx.cursor()
# 假设你的Excel表格已经结构化良好,可以直接映射到数据库表
# 如果有需要,可以先创建SQL INSERT语句
sql_query = "INSERT INTO your_table (column1, column2, ...) VALUES (%s, %s, ...)" # replace 'your_table' and 'columns' with your table name and column names
for i in range(len(df)):
values = df.iloc[i].tolist() # 获取一行数据作为元组列表
cursor.execute(sql_query, tuple(values))
# 3. 提交事务并关闭连接
cnx.commit()
cursor.close()
cnx.close()
```
记得将上述代码中的 `'your_username'`, `'your_password'`, `'your_host'`, `'your_database'`, `'your_table'` 和 `'columns'` 替换成实际的数据库连接信息。
阅读全文