使用python将csv数据导入mysql数据库

 更新时间:2024年05月02日 08:39:30   作者:有莘不破呀  
这篇文章主要为大家详细介绍了如何使用python将csv数据导入mysql数据库,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下

一、前言

在前面章节介绍过,我们处理的防火墙规则数据,数据清洗处理后,会产生几类表,以csv形式保存。在接下来的开发测试中,前台页面开始需要用到一些数据,此时我们就需要将csv中数据添加到mysql数据库中。在真实生产环境下,我们的防火墙规则可能数以万计,同时展开后的规则条数会更多,导入数据时间一般很长。这种情况下我们可以通过使用python脚本,放在后台自动导入。

二、python导入数据库示例

1、安装必要的库: 首先,确保已经安装了 pandas 和 mysql-connector-python 这两个库,可以使用 pip 进行安装:

pip install pandas mysql-connector-python

2、连接到 MySQL 数据库: 在 Python 中,使用 mysql-connector-python 库连接到 MySQL 数据库:

import mysql.connector

# 连接到 MySQL 数据库
mydb = mysql.connector.connect(
    host="localhost",
    user="yourusername",
    password="yourpassword",
    database="yourdatabase"
)

​​​​​​​# 创建游标对象
cursor = mydb.cursor()

这里需要替换 localhost、yourusername、yourpassword 和 yourdatabase 为你的 MySQL 服务器地址、用户名、密码和数据库名称。

3、读取 CSV 文件: 使用 pandas 库读取 CSV 文件:

import pandas as pd
​​​​​​​# 读取 CSV 文件
df = pd.read_csv("data.csv")

4、将数据插入到 MySQL 数据库中:

# 遍历 DataFrame 中的每一行,并将数据插入到 MySQL 数据库中
for index, row in df.iterrows():
    sql = "INSERT INTO your_table_name (column1, column2, column3, ...) VALUES (%s, %s, %s, ...)"
    values = (row['column1'], row['column2'], row['column3'], ...)
    cursor.execute(sql, values)
​​​​​​​# 提交更改
mydb.commit()

your_table_name 需要替换为目标表的名称, column1、column2、column3 等与 CSV 文件中的列名相对应。根据数据量,可以调整 SQL 查询和值的数量。

5、关闭连接: 在完成数据插入后,记得关闭连接:

# 关闭游标和数据库连接
cursor.close()
mydb.close()

这样,就可以使用 Python 将 CSV 数据成功导入到 MySQL 数据库中了。确保在操作之前备份数据库以及 CSV 文件,以避免意外数据丢失。

三、防火墙查询页面数据导入脚本示例

sql.py

# -*- coding: UTF-8 -*
import pymysql 
import time, datetime
 
localdatetime= time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time()))
print(localdatetime)
print('开始导入数据!')
 
        
def netfw_SQL():
    sql_conn = pymysql.connect(host='127.0.0.1', port=3306, user='root',
                           password='XXXXX', db='fwtest', charset='utf8', connect_timeout=1000)
    #创建数据库对象
    cursor = sql_conn.cursor()
    
    with open('netfirewalls.csv', encoding='utf-8') as line_1:
        #依次读取CSV文件的每一行
        for line_2 in line_1.readlines():
            #strip() 方法用于移除字符串头尾指定的字符(默认为空格或换行符)或字符序列
            line_2 = line_2.strip()
            #split() 通过指定分隔符对字符串进行切片,这里指定',',而“-1”表示分隔所有
            list_1 = line_2.split(',', -1)
            #执行插入表数据语句
            sql_2 = 'INSERT INTO netfirewalls (fwname, rulename, rulenum, description, action, disable, sourcezone, destzone, sourceip, destip, service) VALUE(%s, %s, %s, %s, %s, %s, %s, %s, %s, %s, %s)' 
            cursor.execute(sql_2, (list_1[0], list_1[1], list_1[2], list_1[3], list_1[4], list_1[5], list_1[6], list_1[7], list_1[8], list_1[9], list_1[10]))
    sql_conn.commit() #提交事务
    sql_conn.close() #关闭连接
    localdatetime= time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time()))
    print(localdatetime)
    print('网络防火墙原规则数据导入完毕!')
    
 
#执行自定义函数CSV_SQL()
if __name__ == '__main__':
    netfw_SQL()

到此这篇关于使用python将csv数据导入mysql数据库的文章就介绍到这了,更多相关python csv数据导入mysql内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python+Selenium自动化环境搭建与操作基础详解

    Python+Selenium自动化环境搭建与操作基础详解

    Selenium是如今最常用的自动化测试工具之一,支持快速开发自动化测试框架,且支持在多种浏览器上执行测试。本文将介绍关于Selenium Python自动化脚本环境搭建的相关资料,需要的朋友可以参考下
    2022-03-03
  • python批量修改文件夹及其子文件夹下的文件内容

    python批量修改文件夹及其子文件夹下的文件内容

    这篇文章主要为大家详细介绍了python批量修改文件夹及其子文件夹下的文件内容,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-03-03
  • Python3.5实现的三级菜单功能示例

    Python3.5实现的三级菜单功能示例

    这篇文章主要介绍了Python3.5实现的三级菜单功能,涉及Python针对json格式数据的读取、遍历、查找、判断等相关操作技巧,需要的朋友可以参考下
    2019-03-03
  • PyQt5每天必学之工具提示功能

    PyQt5每天必学之工具提示功能

    这篇文章主要为大家详细介绍了PyQt5每天必学之工具提示功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-04-04
  • Selenium操作隐藏的元素及问题解决方案

    Selenium操作隐藏的元素及问题解决方案

    这篇文章主要介绍了Selenium操作隐藏的元素及问题解决方案,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-12-12
  • opencv矩形轮廓顶点的具体位置确定的两种实现方法

    opencv矩形轮廓顶点的具体位置确定的两种实现方法

    本文主要介绍了opencv矩形轮廓顶点的具体位置确定,通过线性规划和最小面积矩两种方法定位纸张四个顶点,具有一定的参考价值,感兴趣的可以了解一下
    2025-07-07
  • 简单有效上手Python3异步asyncio问题

    简单有效上手Python3异步asyncio问题

    这篇文章主要介绍了简单有效上手Python3异步asyncio问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-01-01
  • Python print函数使用由浅入深全面详解

    Python print函数使用由浅入深全面详解

    这篇文章主要为大家介绍了Python print函数使用由浅入深全面详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-12-12
  • python数据预处理 :数据共线性处理详解

    python数据预处理 :数据共线性处理详解

    今天小编就为大家分享一篇python数据预处理 :数据共线性处理详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-02-02
  • Python爬虫与反爬虫大战

    Python爬虫与反爬虫大战

    这篇文章主要介绍了Python爬虫与反爬虫的相关资料,文中讲解非常细致,帮助大家更好的理解Python爬虫与反爬虫的关系,感兴趣的朋友可以了解下
    2020-07-07

最新评论