当前位置:   article > 正文

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

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

前言

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

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

说明

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

进入正题

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

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

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

2,数据与mysql语句合并

3,执行sql语句

第一步先放一边,不看

看第二步和第三步

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

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

第一步,直接给出代码

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

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

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

运行前

可以看到是表空的

代码

  1. from logo.go import G
  2. import pandas as pd
  3. g=G()
  4. g.use_db('school')
  5. a=pd.read_csv(path)
  6. for i in a.iterrows():
  7. name=i[1]['name']
  8. age=i[1]['age']
  9. chinese=i[1]['chinese']
  10. english=i[1]['english']
  11. math=i[1]['math']
  12. g.insert_data('student',name=name,age=age,chinese=chinese,english=english,math=math)
  13. g.close()
  14. # 代码是经过封装的
  15. #name=name,第一个name是表的名字,第二个name是数据

运行后

成功,完美

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop】

推荐阅读
相关标签