用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可以执行
# 如图

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

第一步,直接给出代码

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

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是数据

运行后

成功,完美

😁😁😁😁😁😁😁😁😁😁😁😁😁😁😁😁😁

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值