读取csv文件中的固定列写入到数据库

import csv
import mysql.connector

# 打开 CSV 文件并读取数据
with open('data.csv', 'r') as file:
    csv_data = list(csv.reader(file))

# 打印 CSV 文件内容和提取需要的列的值
headers = csv_data[0]
for row in csv_data[1:]:
    step_id = row[0]
    part_id = row[1]
    for i in range(2, 7):  # 提取需要的列的值
        part_key = headers[i]
        if part_key.startswith("step_"):
            part_value = row[i]
            print(f"step_id: {step_id}, part_id: {part_id}")
            print(f"part_key: {part_key}, part_value: {part_value}")

            # 将数据插入到 MySQL 表中
            # 创建 MySQL 连接
            cnx = mysql.connector.connect(
                host='localhost',
                user='your_username',
                password='your_password',
                database='your_database'
            )
            cursor = cnx.cursor()

            # 执行插入数据的 SQL 语句
            sql = "INSERT INTO your_table (step_id, part_id, part_key, part_value) VALUES (%s, %s, %s, %s)"
            values = (step_id, part_id, part_key, part_value)
            cursor.execute(sql, values)

            # 提交并关闭数据库连接
            cnx.commit()
            cursor.close()
            cnx.close()

读取CSV文件并将其写入数据库可以遵循以下步骤: 1. 导入必要的Python模块:csv和pandas用于读取CSV文件,以及pymysql以连接MySQL数据库。 ```python import csv import pandas as pd import pymysql ``` 2. 从CSV文件读取数据并将其存储在Pandas DataFrame。 ```python data = pd.read_csv('file.csv') ``` 3. 连接到MySQL数据库并创建游标。 ```python conn = pymysql.connect(host='localhost', user='root', password='password', db='testdb', charset='utf8mb4') cursor = conn.cursor() ``` 4. 遍历Pandas DataFrame并使用游标将数据插入到MySQL数据库。 ```python for index, row in data.iterrows(): cursor.execute("INSERT INTO tablename(column1, column2, column3) VALUES(%s, %s, %s)", (row['column1'], row['column2'], row['column3'])) conn.commit() ``` 5. 关闭游标和数据库连接。 ```python cursor.close() conn.close() ``` 完整代码如下: ```python import csv import pandas as pd import pymysql data = pd.read_csv('file.csv') conn = pymysql.connect(host='localhost', user='root', password='password', db='testdb', charset='utf8mb4') cursor = conn.cursor() for index, row in data.iterrows(): cursor.execute("INSERT INTO tablename(column1, column2, column3) VALUES(%s, %s, %s)", (row['column1'], row['column2'], row['column3'])) conn.commit() cursor.close() conn.close() ``` 其,`file.csv` 是CSV文件的路径,`testdb` 是MySQL数据库的名称,`tablename` 是要将数据插入的表的名称,`column1`、`column2` 和 `column3` 是表名。请根据实际情况进行修改。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值