admin管理员组文章数量:1794759
将CSV文件数据存入MySQL数据库的详细代码
文章目录
- 前言
- 步骤
- 1. 定义一个init方法,用于读取数据库
- 2. 定义一个del类,用于运行完所有程序后关闭数据库和游标对象
- 3. 读取csv文件的列索引,用于建立数据表时的字段
- 4. 读取csv文件数据
- 5. 在数据表中写入数据
- 6. 定义一个确认事务运行
- 7. 新创建数据表 【需要更改】
- 8. 运行程序
- 9. 封装函数
- 完整代码
- 补充
想把之前存入CSV文件的天气数据读取出来放进MySQL数据库,于是新建了一个python文档 参照这篇教程读取csv文件写入mysql数据库 不需要其他准备,只要更改CSV文件地址,和创建的表格名字,各项属性即可 有需要更改的地方我会在下面直接标出来!!!
环境: vscode+MySQL python 首先导入两个库
import pymysql import pandas as pd 步骤 1. 定义一个init方法,用于读取数据库【需要根据自己数据库的名字和密码更改代码】 def __init__(self): 账号 user=“root”, 密码password=“root” 要存储的数据库的名字 database=“weather” 若存入数据有中文,加上 charset=“utf8”
#定义一个init方法,用于读取数据库 def __init__(self): #读取数据库和建立游标对象 self.connect = pymysql.connect(host="127.0.0.1",port=3306,user="root",password="root",database="weather",charset="utf8") self.cursor = self.connect.cursor() 2. 定义一个del类,用于运行完所有程序后关闭数据库和游标对象def __del__(self)::
#定义一个del类,用于运行完所有程序的时候关闭数据库和游标对象 def __del__(self): self.connect.close() self.cursor.close() 3. 读取csv文件的列索引,用于建立数据表时的字段【更改CSV文件读取路径】 def read_csv_colnmus(self):
def read_csv_colnmus(self): #读取csv文件的列索引,用于建立数据表时的字段 csv_name='D:\\\\code\\\\python project\\\\pachong\\\\weather_project\\\\weather_year.csv' data = pd.read_csv(csv_name,encoding="utf-8") return data 4. 读取csv文件数据【同上,更改CSV文件读取路径】 def read_csv_values(self):
def read_csv_values(self): #读取csv文件数据 csv_name='D:\\\\code\\\\python project\\\\pachong\\\\weather_project\\\\weather_year.csv' data = pd.read_csv(csv_name, encoding="utf-8") data_3 = list(data.values) return data_3 5. 在数据表中写入数据【更改执行的sql语句】 def write_mysql(self):
def write_mysql(self): #在数据表中写入数据,因为数据是列表类型,把他转化为元组更符合sql语句 for i in self.read_csv_values(): #因为数据是迭代列表,所以用循环把数据提取出来 data_6 = tuple(i) sql = """insert into weather_year_db values{}""".format(data_6) self.cursor.execute(sql) selfmit() print("\\n数据植入完成") 这里sql语句是指将值插入weather_year_db这个表中,根据自己要求更改表名 sql = """insert into weather_year_db values{}""".format(data_6) 6. 定义一个确认事务运行def commit(self):
def commit(self): #定义一个确认事务运行 self.connectmit() 7. 新创建数据表 【需要更改】def create(self):
def create(self): #若已有数据表weather_year_db,则删除 query="drop table if exists weather_year_db;" #更改表明 self.cursor.execute(query) #创建数据表,用刚才提取的列索引作为字段 data_2 = self.read_csv_colnmus() #根据自己要创建的表格更改sql语句 sql = "create table if not exists weather_year_db(date_time DATETIME not null,high varchar(50) not null,low varchar(50) not null,weather varchar(50) not null,primary key(date_time))default charset=utf8;" self.cursor.execute(sql) selfmit()这一句,根据自己要求更改表名。这是为了防止数据库里面已经有这个表,所以先删除这个表
query="drop table if exists weather_year_db;" #更改表明再根据自己要创建的表格更改sql语句
8. 运行程序记得要先调用创建数据的类,再创建写入数据的类 def run(self):
#运行程序,记得要先调用创建数据的类,在创建写入数据的类 def run(self): self.create() self.write_mysql() 9. 封装函数将以上函数封装到一个类里,用main函数运行以上代码
#最后用一个main()函数来封装 def main(): sql = Mysql_csv() sql.run() 完整代码 # """ 配置数据库 """ # HOST='127.0.0.1' # PORT='3306' # USERNAME='root' # PASSWORD='root' # DATABASE='ul' # select * from character import pymysql import pandas as pd #用面向对象的方式编写,更加熟悉面向对象代码风格 class Mysql_csv(object): #定义一个init方法,用于读取数据库 def __init__(self): #读取数据库和建立游标对象 self.connect = pymysql.connect(host="127.0.0.1",port=3306,user="root",password="root",database="weather",charset="utf8") self.cursor = self.connect.cursor() #定义一个del类,用于运行完所有程序的时候关闭数据库和游标对象 def __del__(self): self.connect.close() self.cursor.close() def read_csv_colnmus(self): #读取csv文件的列索引,用于建立数据表时的字段 csv_name='D:\\\\code\\\\python project\\\\pachong\\\\weather_project\\\\weather_year.csv' data = pd.read_csv(csv_name,encoding="utf-8") return data def read_csv_values(self): #读取csv文件数据 csv_name='D:\\\\code\\\\python project\\\\pachong\\\\weather_project\\\\weather_year.csv' data = pd.read_csv(csv_name, encoding="utf-8") data_3 = list(data.values) return data_3 def write_mysql(self): #在数据表中写入数据,因为数据是列表类型,把他转化为元组更符合sql语句 for i in self.read_csv_values(): #因为数据是迭代列表,所以用循环把数据提取出来 data_6 = tuple(i) sql = """insert into weather_year_db values{}""".format(data_6) self.cursor.execute(sql) selfmit() print("\\n数据植入完成") def commit(self): #定义一个确认事务运行 self.connectmit() def create(self): #若已有数据表weather_year_db,则删除 query="drop table if exists weather_year_db;" self.cursor.execute(query) #创建数据表,用刚才提取的列索引作为字段 data_2 = self.read_csv_colnmus() sql = "create table if not exists weather_year_db(date_time DATETIME not null,high varchar(50) not null,low varchar(50) not null,weather varchar(50) not null,primary key(date_time))default charset=utf8;" self.cursor.execute(sql) selfmit() #运行程序,记得要先调用创建数据的类,在创建写入数据的类 def run(self): self.create() self.write_mysql() #最后用一个main()函数来封装 def main(): sql = Mysql_csv() sql.run() if __name__ == '__main__': main() 补充另外,vscode有两个连接数据库的很好用的插件,建议下载下来试试,可以直接在vscode里面查看数据库的信 可以自己查查如何安装,做个推荐 使用 Visual Studio Code 链接 MySql 数据库并进行查询
版权声明:本文标题:将CSV文件数据存入MySQL数据库的详细代码 内容由林淑君副主任自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.xiehuijuan.com/baike/1686768437a100249.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论