用python把csv中的数据存入到mysql

前言

第一次写博客,我也不知道怎么写,想写点东西,就随便写写(0.0)(0.0),

我在网上搜这个问题的解决办法,给出的答案感觉不是很理想,所以写这篇,随便作为开头。

说明

数据(csv文件中)是通过python的faker库,和random随机生成的。

进入正题

用python,用的第三方库是pymysql,如果没安装可以用pip install pymysql安装。

要实现这个目的,要经过三步

1,读取到csv文件中的数据

2,数据与mysql语句合并

3,执行sql语句

第一步先放一边,不看

看第二步和第三步

# 需要执行的mysql语句
# insert into table_name(A) values(B)
"""
(A) 
在mysql里面需要传入的是列的名字
在python里面应该指的是一个元组
对于(B)
在mysql里应该传入的是数据
对于pathon还是理解为元组
""" 
# 我直接给出主要代码
    def insert_data(self,table_name, **kwargs):
        args = ','.join(kwargs.keys())
        # args的类型是str
        c = str(tuple(kwargs.values()))
        a = f'insert into {table_name}({args})values ' + c
        d = a + ';'
        self.sql(d)
        #第三步,执行
        #self.sql是封装的execute和comment
# 这个代码我经过了面向对象的封装,用了**kwargs,而没有用*args
"""
table_name指表的名字
**kwargs,动态参数列表,正好把表名作为键,把数据作为值。在方法里面可以分开,并提取出来
"""
# 假如把d打印出来(有数据了)
# print(d)
# 结果为
# insert into student(name,age,chinese,english,math)values ('周秀珍', 12, 99, 61, 92);
# mysql可以执行
# 如图
用python把csv中的数据存入到mysql_第1张图片

第二步,第三步其实已经完成

第一步,直接给出代码

这一步不用多说,不理解可以搜索。

import pandas as pd
a=pd.read_csv(path)
#path 指的的文件路径
for i in a.iterrows():
    name=i[1]['name']
    age=i[1]['age']
    chinese=i[1]['chinese']
    english=i[1]['english']
    math=i[1]['math']
# name,age等是数据

创建一张表,把上面数据插入

运行前

可以看到是表空的

代码

from logo.go import G
import pandas as pd
g=G()
g.use_db('school')
a=pd.read_csv(path)
for i in a.iterrows():
    name=i[1]['name']
    age=i[1]['age']
    chinese=i[1]['chinese']
    english=i[1]['english']
    math=i[1]['math']
    g.insert_data('student',name=name,age=age,chinese=chinese,english=english,math=math)
g.close()
# 代码是经过封装的
#name=name,第一个name是表的名字,第二个name是数据

运行后

用python把csv中的数据存入到mysql_第2张图片

成功,完美

你可能感兴趣的:(python,mysql,开发语言)